Function at 0x100902e4
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.101052ae
test eax, eax
je 0x10090683
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x20], ebx
cmp eax, 0xffffffff
jne 0x100903b6
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 0x10090701
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.10102074
mov esi, eax
test esi, esi
js 0x100906ee
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.100c58d7
mov esi, eax
test esi, esi
jns 0x10090635
cmp esi, 0xfffff115
je 0x100906ee
cmp esi, 0xffffb09e
je 0x100906ee
push esi
push ebp
push edi
call fcn.100914d6
mov esi, 0xfffff23d
jmp 0x100906ee
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.1003cac0
mov esi, eax
test esi, esi
js 0x10090651
mov eax, dword [esp + 0x28]
shr eax, 1
mov dword [esp + 0x2c], eax
add eax, eax
cmp eax, 0x200
jae 0x10090751
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.1003cac0
mov esi, eax
test esi, esi
js 0x10090651
cmp dword [esp + 0x40], 0
jne 0x10090740
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 0x100904c8
sub esi, ecx
lea eax, [esp + 0xbc]
sar esi, 1
push esi
push edx
push eax
call fcn.101155f0
add esp, 0xc
test eax, eax
jne 0x10090740
lea eax, [esi + esi]
cmp word [esp + eax + 0xbc], 0x2e
jne 0x1009072e
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.1003c3e0
test eax, eax
js 0x1009071c
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 0x10090553
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x44]
push eax
call fcn.10105a47
mov dword [esp + 0x2c], eax
cmp eax, 0x100
jne 0x1009060c
mov ebx, dword [esp + 0x58]
lea eax, [esp + 0xbc]
push ebp
push eax
push dword [esp + 0x68]
push ebx
call fcn.10102931
test eax, eax
je 0x1009054f
movzx eax, word [ebx]
cmp eax, 0x60
je 0x10090594
cmp eax, 0x5b
jne 0x10090599
add ebx, 2
jmp 0x10090587
mov eax, 0xfffe
mov word [ebx], ax
add ebx, 2
cmp esi, 1
jbe 0x1009054f
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.10117a60
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 0x10090619
cmp eax, 0x16
jne 0x10090553
mov edi, dword [esp + 0x2c4]
xor eax, eax
push eax
push 1
push dword [esp + 0x78]
push edi
call fcn.1003c730
mov ebp, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x1009042c
dec eax
mov dword [esp + 0x74], eax
xor eax, eax
cmp esi, 0xfffff9bd
cmove esi, eax
push dword [esp + 0x70]
push edi
call fcn.1003bd20
test esi, esi
js 0x1009067f
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.101052ae
test eax, eax
jne 0x10090389
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x2d0], 0xffffffff
je 0x100906ee
mov eax, dword [esp + 0x24]
or dword [esp + 0x10], 0xffffffff
push eax
push ebx
push ebp
push dword [esp + 0x2dc]
push edi
call fcn.10090757
mov esi, eax
test esi, esi
js 0x100906ee
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.1008fecf
cmp dword [esp + 0x10], 0xffffffff
mov esi, eax
je 0x100906ee
push dword [esp + 0x10]
push edi
call fcn.1003bd20
cmp dword [esp + 0x14], 0xffffffff
je 0x100906ff
push dword [esp + 0x14]
push edi
call fcn.1003bd20
mov eax, esi
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011705d
add esp, 0x2b0
ret 0x20
push eax
push ebp
push edi
call fcn.100914d6
mov esi, 0xfffff23d
jmp 0x10090651
mov esi, 0xfffff23d
push esi
push ebp
push edi
call fcn.100914d6
jmp 0x10090651
mov ebx, 0xfffff23d
push ebx
push ebp
push edi
call fcn.100914d6
mov esi, ebx
jmp 0x100906ee
call fcn.10116cf2
int3