1#************************************************************** 2# 3# 4# Licensed to the Apache Software Foundation (ASF) under one 5# or more contributor license agreements. See the NOTICE file 6# distributed with this work for additional information 7# regarding copyright ownership. The ASF licenses this file 8# to you under the Apache License, Version 2.0 (the 9# "License"); you may not use this file except in compliance 10# with the License. You may obtain a copy of the License at 11# 12# http://www.apache.org/licenses/LICENSE-2.0 13# 14# Unless required by applicable law or agreed to in writing, 15# software distributed under the License is distributed on an 16# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 17# KIND, either express or implied. See the License for the 18# specific language governing permissions and limitations 19# under the License. 20# 21#************************************************************** 22 23.intel_syntax 24 25.globl _DllMgr_call32 26.globl _DllMgr_callFp 27 28_DllMgr_call32: 29_DllMgr_callFp: 30 push ebp 31 mov ebp, esp 32 push esi 33 push edi 34 mov ecx, [ebp+16] 35 jecxz $1 36 sub esp, ecx 37 mov edi, esp 38 mov esi, [ebp+12] 39 shr ecx, 2 40 rep movsd 41$1: call DWORD PTR [ebp+8] 42 # for extra safety, do not trust esp after call (in case the Basic Declare 43 # signature is wrong): 44 mov edi, [ebp-8] 45 mov esi, [ebp-4] 46 mov esp, ebp 47 pop ebp 48 ret 12 49