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

Disassembly:
push 0xffffffffffffffff
push 0x1004b70b
mov eax, dword fs:[0]
push eax
sub esp, 0x6c
mov eax, dword [0x10077990]
xor eax, esp
mov dword [esp + 0x68], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10077990]
xor eax, esp
push eax
lea eax, [esp + 0x80]
mov dword fs:[0], eax
mov eax, dword [esp + 0x94]
xor ebp, ebp
mov edi, dword [esp + 0x90]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x34], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x18], 0xffffffff
push ebp
push ebp
mov eax, dword [eax + 0x34]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x40], ebp
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], 1
mov dword [esp + 0x44], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], ebp
call dword [sym.imp.OLEAUT32.dll_CreateErrorInfo]
mov esi, dword [edi + 8]
mov ebx, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esi, 0xf8
push esi
mov dword [esp + 0x68], esi
call ebx
mov eax, dword [edi + 8]
mov dword [esp + 0x88], ebp
mov edi, dword [eax + 0x34]
add edi, 0x68
push edi
mov dword [esp + 0x64], edi
call ebx
mov eax, dword [esp + 0x14]
mov byte [esp + 0x88], 1
push dword [eax + 8]
call fcn.10009550
mov ebx, eax
test ebx, ebx
js 0x10006120
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + 0x3c]
shr eax, 4
and eax, 1
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x10005aca
mov dword [eax], ebp
mov edx, dword [esp + 0x34]
test edx, edx
je 0x10005ad8
mov dword [edx], 0
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x10005aff
mov eax, dword [ecx + 4]
test eax, eax
je 0x10005aec
cmp dword [ecx], 0
je 0x10005af5
cmp eax, 1
jbe 0x10005aff
test edx, edx
je 0x10005b03
mov ebx, 0x80070057
jmp 0x10006120
test edx, edx
jne 0x10005b22
mov edx, dword [esp + 0x20]
mov ecx, 0x10068ef8
mov ebx, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005af5
add ecx, 4
add edx, 4
sub ebx, 4
jae 0x10005b11
cmp dword [esp + 0x58], 0
je 0x10005b48
mov edx, dword [esp + 0x20]
mov ecx, 0x10068bd8
mov ebx, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005b7b
add ecx, 4
add edx, 4
sub ebx, 4
jae 0x10005b37
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x10005b5b
mov ebx, dword [ebx + 4]
mov dword [esp + 0x28], ebx
test ebx, ebx
jne 0x10005b63
mov dword [esp + 0x28], 1
mov edx, dword [esp + 0x14]
mov ecx, dword [edx + 8]
mov eax, dword [ecx + 0x3c]
test al, 0x20
jne 0x10005b85
mov ebx, 0x80040e0c
jmp 0x10006120
mov ebx, 0x80040e22
jmp 0x10006120
test al, 0x10
jne 0x10005bba
or eax, 0x100
mov dword [ecx + 0x3c], eax
mov eax, dword [edx + 8]
push 0
mov eax, dword [eax + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov edx, dword [esp + 0x14]
mov ebx, eax
mov eax, dword [edx + 8]
and dword [eax + 0x3c], 0xfffffeff
test ebx, ebx
jns 0x10005bba
xor eax, eax
jmp 0x10006117
mov eax, dword [edx + 8]
push 0
mov ecx, dword [eax + 0x14]
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x54]
add ecx, 0xc
push eax
call 0x10088d69
mov ebx, eax
mov dword [esp + 0x24], ebx
test ebx, ebx
js 0x10006120
cmp dword [esp + 0x28], 0
mov dword [esp + 0x44], 0
jbe 0x10005eee
mov ebx, dword [esp + 0x14]
lea ecx, [ecx]
mov ecx, dword [ebx + 8]
add ecx, 0x54
call fcn.1003ab90
test eax, eax
je 0x10005c38
mov eax, dword [esp + 0x40]
test eax, eax
je case.0x10005d9e.3084
push dword [esp + 0x44]
mov ecx, dword [ebx + 8]
push eax
push ecx
add ecx, 0x54
call fcn.10039ce0
mov dword [esp + 0x24], eax
test eax, eax
js 0x100060cf
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push ecx
push 0xef
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
mov dword [eax + 8], 0
mov eax, dword [ebp + 8]
mov ebx, dword [esp + 0x50]
or ebx, 0x1000100
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
call fcn.10014f70
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x10005c9d
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
push 0x109
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x54]
mov ecx, dword [eax + 0xa4]
call fcn.10014f70
mov eax, dword [esp + 0x1c]
sub eax, 2
jne 0x10005ca8
or ebx, 0x4000
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
push 0x10c
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + 0x18]
call fcn.10014f70
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x10005cea
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x1c]
push ecx
push 0x10b
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 0x54]
mov ecx, dword [eax + 0xa4]
call fcn.10014f70
mov eax, dword [esp + 0x1c]
cmp eax, 1
ja 0x10005cf5
or ebx, 0x200000
mov eax, dword [ebp + 8]
cmp dword [eax + 0x48], 1
jne 0x10005d23
cmp dword [eax + 0x64], 0xffffffff
jne 0x10005d23
lea ecx, [esp + 0x18]
push ecx
push ebx
push dword [eax + 0x58]
mov ebx, dword [esp + 0x48]
push dword [eax + 0x5c]
push dword [eax + 0x4c]
push dword [esp + 0x68]
push ebx
call sub.msjet40.dll_Ordinal_158
jmp 0x10005d40
lea ecx, [esp + 0x18]
push ecx
push ebx
push dword [eax + 0x58]
mov ebx, dword [esp + 0x48]
push dword [eax + 0x5c]
push dword [eax + 0x64]
push dword [esp + 0x68]
push ebx
call sub.msjet40.dll_Ordinal_304
mov ebp, eax
cmp ebp, 0xfffffa17
jg 0x10005dbb
je case.0x10005de9.1507
cmp ebp, 0xfffff3e2
jg 0x10005d7e
cmp ebp, 0xfffff3e1
jge case.0x10005de9.1507
cmp ebp, 0xfffff117
je 0x10005e10
cmp ebp, 0xfffff254
jne case.0x10005de9.1505
mov ebx, 0x80040e14
jmp 0x100060f6
cmp ebp, 0xfffff88d
jg 0x10005da5
je 0x10005db1
lea eax, [ebp + 0xc1d]
cmp eax, 0x5d
ja case.0x10005de9.1505
movzx eax, byte [eax + 0x10006214]
jmp dword [eax*4 + 0x10006200]
cmp ebp, 0xfffff8ef
jne case.0x10005de9.1505
mov ebx, 0x80040e09
jmp 0x100060f6
cmp ebp, 0xfffffbe9
jg 0x10005e30
je 0x10005f9c
cmp ebp, 0xfffffade
jg 0x10005df0
je case.0x10005de9.1507
lea eax, [ebp + 0x5e4]
cmp eax, 0x68
ja case.0x10005de9.1505
movzx eax, byte [eax + 0x10006280]
jmp dword [eax*4 + 0x10006274]
cmp ebp, 0xfffffae9
jg 0x10005e1a
cmp ebp, 0xfffffae8
jge case.0x10005de9.1507
cmp ebp, 0xfffffae7
jne case.0x10005de9.1505
mov ebx, 0x80040e37
jmp 0x100060fa
cmp ebp, 0xfffffbe8
jne case.0x10005de9.1505
mov ebx, 0x80040e21
jmp 0x100060f6
cmp ebp, 0xbd2
jg 0x10005eb6
je 0x10005e98
cmp ebp, 0x458
jg 0x10005eae
cmp ebp, 0x456
jge 0x10005e58
cmp ebp, 0xfffffc08
je case.0x10005de9.1508
test ebp, ebp
jne 0x10005ecd
jmp 0x10005e9a
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0x34]
jne 0x10005e6b
call fcn.1000c430
jmp 0x10005e7c
xor eax, eax
cmp ebp, 0x457
sete al
push eax
call fcn.1000c390
mov dword [esp + 0x24], eax
test eax, eax
js 0x100060cf
mov dword [esp + 0x30], 0
mov dword [esp + 0x18], 0xffffffff
xor ebp, ebp
cmp dword [esp + 0x18], 0xffffffff
jne 0x10005f1e
mov dword [esp + 0x30], 0
jmp 0x10005f38
cmp ebp, 0x581
jmp 0x10005ec9
mov eax, ebp
sub eax, 0xbd8
je 0x10005e98
sub eax, 0x1d
je 0x10005e88
sub eax, 0x79e
je 0x10005ed3
test ebp, ebp
jle 0x10005fd6
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x44], eax
cmp eax, dword [esp + 0x28]
jb 0x10005c00
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, 0x10068ef8
mov dword [esp + 0x2c], 0xc
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x10005fe0
add ecx, 4
add edx, 4
sub dword [esp + 0x2c], 4
jae 0x10005f00
xor eax, eax
jmp 0x10005fef
cmp dword [esp + 0x30], 1
jne 0x10005f38
mov eax, dword [esp + 0x28]
mov ecx, 1
cmp eax, 1
cmova eax, ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x10005ed3
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x34]
mov eax, dword [eax + 8]
add dword [ecx], eax
jmp 0x10005ed7
mov ebx, 0x80040e10
jmp 0x100060f6
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x14
lea eax, [esp + 0x88]
push eax
push ebx
call sub.msjet40.dll_Ordinal_138
test eax, eax
js case.0x10005de9.1507
cmp ebp, 0xfffff3e4
je 0x10005fbe
cmp ebp, 0xfffff42a
jne case.0x10005de9.1507
cmp dword [esp + 0x78], 6
jne 0x10005fa6
mov ebx, 0x80040e57
jmp 0x100060fa
cmp dword [esp + 0x6c], 0xffffdfd1
jne case.0x10005de9.1507
mov ebx, 0x80040e07
jmp 0x100060fa
cmp dword [esp + 0x78], 0x2711
jne case.0x10005de9.1507
mov ebx, 0x80040e07
jmp 0x100060fa
mov ebx, 0x80004005
jmp 0x100060f6
cmp dword [esp + 0x18], 0xffffffff
jne 0x10005feb
xor eax, eax
jmp 0x10005fef
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
je 0x100060d5
test eax, eax
je 0x100060d5
push 0xf0
call fcn.1003d386
add esp, 4
mov dword [esp + 0x2c], eax
mov byte [esp + 0x88], 2
test eax, eax
je 0x10006032
push dword [esp + 0x58]
mov ecx, eax
call fcn.1001c170
mov ebx, eax
mov dword [esp + 0x38], eax
jmp 0x10006038
xor ebx, ebx
mov dword [esp + 0x38], ebx
mov byte [esp + 0x88], 1
test ebx, ebx
jne 0x1000604e
mov ebx, 0x8007000e
jmp 0x100060f6
push dword [esp + 0x20]
mov edx, dword [esp + 0x18]
push 0
push 0
push 0
mov eax, dword [edx + 8]
push 0
push 0
push 0
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x64]
mov dword [ebx + 0x78], eax
push dword [esp + 0x78]
mov edx, dword [edx + 8]
lea eax, [ecx + 0xc]
push eax
push dword [esp + 0x3c]
push 0
push 0
push edx
push dword [edx + 0x34]
push 0
push ebx
call fcn.1001c790
mov dword [esp + 0x24], eax
test eax, eax
js 0x100060cf
cmp eax, 0x40eda
jne 0x100060b6
push dword [esp + 0x34]
mov eax, dword [ebx]
push dword [esp + 0x24]
mov dword [esp + 0x58], 1
push ebx
call dword [eax]
mov ebx, eax
jmp 0x100060f6
push dword [esp + 0x34]
mov dword [esp + 0x1c], 0xffffffff
push dword [esp + 0x24]
mov eax, dword [ebx]
push ebx
call dword [eax]
mov ebx, eax
jmp 0x100060f6
mov ebx, dword [esp + 0x24]
jmp 0x100060f6
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x100060f6
push eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 0x34]
call fcn.1000b390
mov dword [esp + 0x18], 0xffffffff
test ebp, ebp
je 0x10006112
push 0x10068cc8
push ebp
mov ebp, dword [esp + 0x1c]
push ebx
mov eax, dword [ebp + 8]
push dword [eax + 0x34]
call fcn.10010bd0
jmp 0x10006143
mov eax, 1
test ebx, ebx
jns 0x1000613f
cmp eax, 1
jne 0x1000613f
mov ebp, dword [esp + 0x14]
push 0
push 0x10068cc8
push ebx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x34]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.100105d0
jmp 0x10006143
mov ebp, dword [esp + 0x14]
test ebx, ebx
jne 0x10006154
cmp dword [esp + 0x50], 1
mov eax, 0x40eda
cmove ebx, eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x3c]
mov eax, ecx
shr eax, 4
and eax, 1
cmp dword [esp + 0x4c], eax
je 0x10006191
and ecx, 0xffffffef
mov dword [edx + 0x3c], ecx
mov ecx, dword [ebp + 8]
add ecx, 0x54
call fcn.1003b010
mov ecx, dword [ebp + 8]
push dword [ecx + 0x64]
mov ecx, dword [ecx + 0x34]
call fcn.1000b390
mov eax, dword [ebp + 8]
mov dword [eax + 0x64], 0xffffffff
test ebx, ebx
jns 0x100061c5
mov eax, dword [esp + 0x34]
test eax, eax
je 0x100061a3
mov dword [eax], 0
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x100061b2
mov eax, dword [ecx]
push 1
call dword [eax + 0xc]
mov eax, dword [esp + 0x18]
cmp eax, 0xffffffff
je 0x100061c5
push eax
push dword [esp + 0x40]
call sub.msjet40.dll_Ordinal_108
mov ebp, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
je 0x100061d2
push edi
call ebp
test esi, esi
je 0x100061d9
push esi
call ebp
mov eax, ebx
mov ecx, dword [esp + 0x80]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.1003dba2
add esp, 0x78
ret 0x18