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

Disassembly:
sub esp, 0x2b0
mov eax, dword [0x101366b4]
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.10105f9f
test eax, eax
je 0x10091263
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov dword [esp + 0x20], ebx
cmp eax, 0xffffffff
jne 0x10090f96
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 0x100912e1
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.10102d65
mov esi, eax
test esi, esi
js 0x100912ce
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.100c6588
mov esi, eax
test esi, esi
jns 0x10091215
cmp esi, 0xfffff115
je 0x100912ce
cmp esi, 0xffffb09e
je 0x100912ce
push esi
push ebp
push edi
call fcn.100920b6
mov esi, 0xfffff23d
jmp 0x100912ce
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.1003cec0
mov esi, eax
test esi, esi
js 0x10091231
mov eax, dword [esp + 0x28]
shr eax, 1
mov dword [esp + 0x2c], eax
add eax, eax
cmp eax, 0x200
jae 0x10091331
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.1003cec0
mov esi, eax
test esi, esi
js 0x10091231
cmp dword [esp + 0x40], 0
jne 0x10091320
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 0x100910a8
sub esi, ecx
lea eax, [esp + 0xbc]
sar esi, 1
push esi
push edx
push eax
call fcn.10116290
add esp, 0xc
test eax, eax
jne 0x10091320
lea eax, [esi + esi]
cmp word [esp + eax + 0xbc], 0x2e
jne 0x1009130e
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.1003c7e0
test eax, eax
js 0x100912fc
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 0x10091133
mov ebx, dword [esp + 0x20]
lea eax, [esp + 0x44]
push eax
call fcn.10106738
mov dword [esp + 0x2c], eax
cmp eax, 0x100
jne 0x100911ec
mov ebx, dword [esp + 0x58]
lea eax, [esp + 0xbc]
push ebp
push eax
push dword [esp + 0x68]
push ebx
call fcn.10103622
test eax, eax
je 0x1009112f
movzx eax, word [ebx]
cmp eax, 0x60
je 0x10091174
cmp eax, 0x5b
jne 0x10091179
add ebx, 2
jmp 0x10091167
mov eax, 0xfffe
mov word [ebx], ax
add ebx, 2
cmp esi, 1
jbe 0x1009112f
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.10118700
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 0x100911f9
cmp eax, 0x16
jne 0x10091133
mov edi, dword [esp + 0x2c4]
xor eax, eax
push eax
push 1
push dword [esp + 0x78]
push edi
call fcn.1003cb30
mov ebp, dword [esp + 0x3c]
mov esi, eax
mov eax, dword [esp + 0x74]
test eax, eax
jne 0x1009100c
dec eax
mov dword [esp + 0x74], eax
xor eax, eax
cmp esi, 0xfffff9bd
cmove esi, eax
push dword [esp + 0x70]
push edi
call fcn.1003c120
test esi, esi
js 0x1009125f
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.10105f9f
test eax, eax
jne 0x10090f69
mov ebx, dword [esp + 0x10]
cmp dword [esp + 0x2d0], 0xffffffff
je 0x100912ce
mov eax, dword [esp + 0x24]
or dword [esp + 0x10], 0xffffffff
push eax
push ebx
push ebp
push dword [esp + 0x2dc]
push edi
call fcn.10091337
mov esi, eax
test esi, esi
js 0x100912ce
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.10090aaf
cmp dword [esp + 0x10], 0xffffffff
mov esi, eax
je 0x100912ce
push dword [esp + 0x10]
push edi
call fcn.1003c120
cmp dword [esp + 0x14], 0xffffffff
je 0x100912df
push dword [esp + 0x14]
push edi
call fcn.1003c120
mov eax, esi
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10117cfd
add esp, 0x2b0
ret 0x20
push eax
push ebp
push edi
call fcn.100920b6
mov esi, 0xfffff23d
jmp 0x10091231
mov esi, 0xfffff23d
push esi
push ebp
push edi
call fcn.100920b6
jmp 0x10091231
mov ebx, 0xfffff23d
push ebx
push ebp
push edi
call fcn.100920b6
mov esi, ebx
jmp 0x100912ce
call fcn.10117992
int3