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