Function at 0x1009a89d
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xa0
mov eax, dword [0x1013567c]
xor eax, esp
mov dword [esp + 0x9c], eax
push ebx
push ebp
mov ebp, dword [esp + 0xac]
push esi
mov esi, dword [esp + 0xb8]
push edi
mov eax, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x28]
mov edi, dword [ebp + 0xb0]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x48]
mov dword [esp + 0x28], edi
push eax
push dword [esp + 0xc0]
push ebx
call fcn.1009c2a4
test eax, eax
js 0x1009acba
lea eax, [esp + 0x10]
push eax
push 0x5a
push 4
push edi
push dword [esp + 0xc8]
push ebx
call sym.msjet40.dll_Ordinal_118
mov edi, eax
test edi, edi
jns 0x1009a998
xor esi, esi
cmp edi, 0xfffff88d
je 0x1009a929
cmp edi, 0xfffffbf8
jne 0x1009a93d
push esi
push esi
push esi
push 0xffffe047
push esi
push esi
push dword [esp + 0x3c]
push ebx
call fcn.10037730
cmp edi, 0xfffffc01
jne 0x1009a95b
push esi
push esi
push esi
push 0xffffe01f
push esi
push esi
push dword [ebp + 0xa8]
push ebx
call fcn.10037730
mov ebp, dword [esp + 0x24]
cmp edi, 0xfffffae9
jne 0x1009a978
push esi
push esi
push esi
push 0xffffe01e
push esi
push esi
push ebp
push ebx
call fcn.10037730
cmp edi, 0xfffffc16
jne 0x1009a991
push esi
push esi
push esi
push 0xffffdffa
push esi
push esi
push ebp
push ebx
call fcn.10037730
mov eax, edi
jmp 0x1009acba
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
mov dword [esi], eax
xor eax, eax
inc eax
xor esi, esi
imul ecx, dword [ebp + 0x34], 0x14
mov edi, dword [ebp + 0x30]
mov edx, dword [ebp + 0x40]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x50]
add ecx, edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x34], ecx
cmp edi, ecx
jae 0x1009acaf
add ecx, 0xffffffec
add eax, 4
mov dword [esp + 0x40], ecx
mov dword [esp + 0x2c], eax
mov eax, dword [edx]
jmp 0x1009a9f3
cmp word [eax], 0x2e
jne 0x1009a9f0
push 0x5f
pop ecx
mov word [eax], cx
add eax, 2
cmp word [eax], si
jne 0x1009a9e4
mov dword [esp + 0x44], 0x18
mov ecx, dword [edi + 4]
mov dword [esp + 0x4c], ecx
cmp dword [edi + 4], 0x10
jne 0x1009aa21
mov ax, word [edi + 0xc]
mov word [esp + 0x50], ax
mov ax, word [edi + 0xe]
mov word [esp + 0x52], ax
jmp 0x1009aa35
mov eax, dword [esp + 0x50]
mov edx, 0x409
cmp dword [esp + 0x38], esi
cmovne eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [edi]
and eax, 0x1ff
cmp eax, 2
jne 0x1009aa54
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 4]
mov dword [esp + 0x58], edx
mov eax, dword [eax]
mov dword [esp + 0x54], eax
jmp 0x1009aa5a
mov edx, esi
mov dword [esp + 0x54], esi
cmp edi, dword [esp + 0x40]
je 0x1009aa66
or edx, 0x100
and edx, 0xfffffffb
mov dword [esp + 0x58], edx
cmp ecx, 0xf
jne 0x1009aade
test edx, 0x2800
je 0x1009aade
xor eax, eax
inc eax
push eax
push 0x38
lea eax, [esp + 0x7c]
push eax
push esi
push dword [esp + 0x20]
push ebx
call fcn.1003c3e0
mov edi, eax
cmp edi, 0xfffffc15
je 0x1009aade
test edi, edi
js 0x1009aceb
lea eax, [esp + 0x74]
push eax
push dword [esp + 0x14]
push ebx
call fcn.10046790
push dword [esp + 0x78]
mov edi, eax
push ebx
call fcn.1003bd20
test edi, edi
js 0x1009aceb
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x14]
call fcn.100483d0
test byte [esp + 0x28], 4
jne 0x1009acd5
lea eax, [esp + 0x3c]
push eax
push esi
push esi
lea eax, [esp + 0x50]
push eax
mov eax, dword [esp + 0x28]
push dword [eax]
push dword [esp + 0x24]
push ebx
call fcn.1003bcc0
mov edx, dword [esp + 0x58]
mov edi, eax
test edi, edi
js 0x1009ab5f
test edx, 0x800
jne 0x1009ab1d
mov ecx, dword [esp + 0x4c]
test edx, 0x2000
je 0x1009ab63
cmp ecx, 0xf
jne 0x1009ab63
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x48]
push eax
mov eax, dword [esp + 0x20]
push dword [eax]
push dword [esp + 0x1c]
push ebx
call fcn.1003e110
mov ecx, dword [esp + 0x4c]
mov edi, eax
cmp ecx, 0xf
jne 0x1009aba0
test edi, edi
js 0x1009aba0
mov eax, dword [esp + 0x28]
or eax, 4
push eax
push dword [esp + 0x14]
mov dword [esp + 0x30], eax
call fcn.1004a0f0
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x4c]
cmp edi, 0xfffffa19
jne 0x1009abb6
cmp ecx, 7
je 0x1009aceb
cmp ecx, 0xa
je 0x1009aceb
cmp ecx, 2
jb 0x1009ab87
cmp ecx, 7
jbe 0x1009ab8c
cmp ecx, 0x10
jne 0x1009aba6
push 7
pop ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], 8
jmp 0x1009aa6d
mov edx, dword [esp + 0x58]
jmp 0x1009ab63
push 9
pop ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], esi
jmp 0x1009aa6d
cmp edi, 0xfffffa1e
je 0x1009abad
test edi, edi
js 0x1009aceb
push dword [esp + 0xb8]
push ebx
call fcn.10037270
test eax, eax
je 0x1009ac86
push 3
push 4
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push dword [eax]
push dword [esp + 0x20]
push ebx
call fcn.1003c3e0
mov edi, eax
test edi, edi
js 0x1009aceb
xor eax, eax
inc eax
cmp word [esp + 0x1c], ax
jne 0x1009ac31
push esi
push 0x18
lea eax, [esp + 0x64]
push eax
push 0x1000273c
push dword [esp + 0x24]
push ebx
call fcn.1003c3e0
mov edi, eax
test edi, edi
js 0x1009acdc
mov eax, dword [esp + 0x60]
mov dword [esp + 0x30], eax
push 2
push dword [esp + 0x18]
push ebx
call fcn.1003c920
mov edi, eax
test edi, edi
js 0x1009acdc
push esi
push esi
push 2
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x40]
push dword [esp + 0x28]
push ebx
call fcn.1003cce0
mov edi, eax
test edi, edi
js 0x1009acdc
push esi
push esi
push esi
push dword [esp + 0x20]
push ebx
call fcn.1003cef0
mov edi, eax
test edi, edi
js 0x1009acdc
push dword [esp + 0x14]
push ebx
call fcn.1003bd20
or dword [esp + 0x14], 0xffffffff
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
add edi, 0x14
add dword [esp + 0x2c], 0x10
add edx, 4
inc dword [esp + 0x1c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], edx
cmp edi, dword [esp + 0x34]
jb 0x1009a9e0
mov eax, dword [ebp + 0x40]
mov dword [ebp + 0x49c], eax
xor eax, eax
mov ecx, dword [esp + 0xac]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011705d
add esp, 0xa0
ret 0xc
mov edi, 0xffffb1dc
jmp 0x1009aceb
push dword [esp + 0x14]
push ebx
call fcn.1003bd20
or dword [esp + 0x14], 0xffffffff
push dword [esp + 0x10]
push ebx
call fcn.1003bd20
or dword [esp + 0x10], 0xffffffff
push esi
push dword [esp + 0x28]
push dword [esp + 0xc0]
push ebx
call fcn.100d5836
jmp 0x1009a991