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

Disassembly:
sub esp, 0x2b0
mov eax, dword [0x1013567c]
xor eax, esp
mov dword [esp + 0x2ac], eax
mov eax, dword [esp + 0x2bc]
mov edx, dword [esp + 0x2cc]
push ebx
mov ebx, dword [esp + 0x2cc]
push ebp
push esi
mov ebp, dword [esp + 0x2d0]
push edi
or dword [esp + 0x14], 0xffffffff
lea edi, [esp + 0x48]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x2e0]
mov dword [esp + 0x34], eax
xor eax, eax
push 9
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x2c4]
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [edx]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], edx
lea eax, [ebx + eax*2]
mov dword [esp + 0x44], edi
mov dword [esp + 0x54], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
mov dword [esp + 0x54], ebx
push eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x54], ebx
push eax
mov dword [esp + 0x74], 0x5c
call fcn.101054b1
test eax, eax
je 0x10090883
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x20], ebx
cmp eax, 0xffffffff
jne 0x100905b6
lea eax, [esp + 0x14]
push eax
xor eax, eax
push eax
push 0xffffffffffffffff
push edi
call sym.msjet40.dll_Ordinal_302
test eax, eax
js 0x10090901
mov eax, dword [esp + 0x14]
xor ecx, ecx
push ecx
push ecx
push dword [esp + 0x20]
push dword [esp + 0x28]
push eax
push 0xffffffffffffffff
push edi
call fcn.10102277
mov esi, eax
test esi, esi
js 0x100908ee
push 0x20
xor ecx, ecx
lea eax, [esp + 0x2c]
push ecx
push eax
push 0x38
lea eax, [esp + 0x7c]
push eax
push dword [esp + 0x28]
push ecx
push dword [esp + 0x2e4]
push edi
call fcn.100c5ad7
mov esi, eax
test esi, esi
jns 0x10090835
cmp esi, 0xfffff115
je 0x100908ee
cmp esi, 0xffffb09e
je 0x100908ee
push esi
push ebp
push edi
call fcn.100916d6
mov esi, 0xfffff23d
jmp 0x100908ee
dec eax
mov dword [esp + 0x74], eax
xor eax, eax
push eax
push eax
lea eax, [esp + 0x30]
push eax
push 0x200
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0x90]
push dword [esp + 0x88]
push edi
call fcn.1003cb80
mov esi, eax
test esi, esi
js 0x10090851
mov eax, dword [esp + 0x28]
shr eax, 1
mov dword [esp + 0x2c], eax
add eax, eax
cmp eax, 0x200
jae 0x10090951
xor ecx, ecx
mov word [esp + eax + 0xbc], cx
xor eax, eax
push eax
push eax
lea eax, [esp + 0x30]
push eax
push 4
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x98]
push dword [esp + 0x88]
push edi
call fcn.1003cb80
mov esi, eax
test esi, esi
js 0x10090851
cmp dword [esp + 0x40], 0
jne 0x10090940
mov edx, dword [esp + 0x30]
mov esi, edx
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
cmp ax, word [esp + 0x38]
jne 0x100906c8
sub esi, ecx
lea eax, [esp + 0xbc]
sar esi, 1
push esi
push edx
push eax
call fcn.101157a0
add esp, 0xc
test eax, eax
jne 0x10090940
lea eax, [esi + esi]
cmp word [esp + eax + 0xbc], 0x2e
jne 0x1009092e
xor ecx, ecx
lea eax, [esp + eax + 0xbe]
push ecx
push 0x18
lea ecx, [esp + 0xac]
push ecx
push eax
push dword [esp + 0x2e0]
push edi
call fcn.1003c4a0
test eax, eax
js 0x1009091c
mov ecx, dword [esp + 0x1c]
lea edi, [esi + esi]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x4c], ecx
lea eax, [ecx + eax*2]
mov dword [esp + 0x54], eax
jmp 0x10090753
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x44]
push eax
call fcn.10105c4a
mov dword [esp + 0x2c], eax
cmp eax, 0x100
jne 0x1009080c
mov ebx, dword [esp + 0x58]
lea eax, [esp + 0xbc]
push ebp
push eax
push dword [esp + 0x68]
push ebx
call fcn.10102b34
test eax, eax
je 0x1009074f
movzx eax, word [ebx]
cmp eax, 0x60
je 0x10090794
cmp eax, 0x5b
jne 0x10090799
add ebx, 2
jmp 0x10090787
mov eax, 0xfffe
mov word [ebx], ax
add ebx, 2
cmp esi, 1
jbe 0x1009074f
mov eax, dword [esp + 0x24]
lea edx, [ebx - 2]
add edx, edi
mov ecx, edx
sub ecx, dword [esp + 0x10]
mov eax, dword [eax]
sar ecx, 1
sub eax, ecx
add eax, eax
push eax
push edx
push ebx
call fcn.10117c10
mov ecx, dword [esp + 0x24]
xor eax, eax
mov edx, dword [esp + 0x30]
inc eax
sub eax, esi
mov ebx, dword [esp + 0x2c]
add ecx, eax
add esp, 0xc
xor eax, eax
mov dword [esp + 0x18], ecx
inc eax
sub eax, esi
add dword [edx], eax
xor eax, eax
inc eax
sub eax, esi
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
push 2
lea eax, [eax + ecx*2]
mov dword [esp + 0x58], eax
pop eax
sub eax, edi
add ebx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
test eax, eax
je 0x10090819
cmp eax, 0x16
jne 0x10090753
mov edi, dword [esp + 0x2c4]
xor eax, eax
push eax
push 1
push dword [esp + 0x78]
push edi
call fcn.1003c7f0
mov ebp, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x1009062c
dec eax
mov dword [esp + 0x74], eax
xor eax, eax
cmp esi, 0xfffff9bd
cmove esi, eax
push dword [esp + 0x70]
push edi
call fcn.1003bde0
test esi, esi
js 0x1009087f
lea eax, [esp + 0x18]
mov dword [esp + 0x54], ebx
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.101054b1
test eax, eax
jne 0x10090589
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x2d0], 0xffffffff
je 0x100908ee
mov eax, dword [esp + 0x24]
or dword [esp + 0x10], 0xffffffff
push eax
push ebx
push ebp
push dword [esp + 0x2dc]
push edi
call fcn.1018ddbe
mov esi, eax
test esi, esi
js 0x100908ee
push dword [esp + 0x34]
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x30]
push 1
push dword [eax]
push ebx
push ebp
push dword [esp + 0x2ec]
push dword [esp + 0x2e8]
push edi
call fcn.100900cf
cmp dword [esp + 0x10], 0xffffffff
mov esi, eax
je 0x100908ee
push dword [esp + 0x10]
push edi
call fcn.1003bde0
cmp dword [esp + 0x14], 0xffffffff
je 0x100908ff
push dword [esp + 0x14]
push edi
call fcn.1003bde0
mov eax, esi
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011720d
add esp, 0x2b0
ret 0x20
push eax
push ebp
push edi
call fcn.100916d6
mov esi, 0xfffff23d
jmp 0x10090851
mov esi, 0xfffff23d
push esi
push ebp
push edi
call fcn.100916d6
jmp 0x10090851
mov ebx, 0xfffff23d
push ebx
push ebp
push edi
call fcn.100916d6
mov esi, ebx
jmp 0x100908ee
call fcn.10116ea2
int3