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

Disassembly:
sub esp, 0x230
mov eax, dword [0x1013567c]
xor eax, esp
mov dword [esp + 0x22c], eax
push ebx
mov ebx, dword [esp + 0x238]
xor edx, edx
cmp dword [esp + 0x240], 0x80000000
push ebp
push esi
mov esi, dword [esp + 0x244]
mov dword [esp + 0x10], edx
push edi
mov edi, edx
mov ebp, dword [esi + 0x20]
mov dword [esp + 0x10], ebp
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x18], eax
jne 0x100a3775
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x5c]
test al, 1
jne 0x100a372d
push edx
push Ordinal_2
push dword [esi + 0x2c]
or eax, 1
push ebx
mov dword [esi + 0x5c], eax
call fcn.1003c7d0
mov edi, eax
cmp edi, 0xfffff9bd
jne 0x100a3723
test dword [esi + 0x5c], 0x800
je 0x100a3719
push ebx
call fcn.10037140
xor ebp, ebp
push ebp
push ebp
push ebp
push 0xffffddcd
push ebp
push ebp
push ebp
push ebx
call fcn.10037780
mov eax, 0xfffff9bd
jmp 0x100a3be1
test edi, edi
js 0x100a3be1
xor edx, edx
test byte [esi + 0x5c], 8
je 0x100a3742
mov eax, dword [esi + 0x60]
mov eax, dword [eax + 0x24]
cmp dword [eax], 6
mov eax, dword [eax + 0x28]
mov dword [esi + 0x68], eax
mov eax, dword [esi + 0x50]
test eax, eax
je 0x100a3953
test dword [esi + 0x5c], 0x100
jne 0x100a3953
test byte [esi + 0x5c], 0x40
je 0x100a3769
cmp dword [esi + 0x78], edx
je 0x100a3953
mov dword [esi + 0x54], eax
jmp 0x100a3851
mov ebp, dword [esp + 0x10]
test dword [esi + 0x5c], 0x2000
jne 0x100a3807
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 1]
mov dword [esi + 0xc], eax
test ecx, ecx
jne 0x100a37ee
cmp dword [ebp + 0xd8], edx
je 0x100a37e7
mov eax, dword [esi + 0x28]
mov ecx, 0x1f4
push 2
pop edi
push 0x64
mov dword [esp + 0x3c], edx
pop edx
mov dword [esp + 0x30], 0xc
mov dword [esp + 0x34], edi
cmp dword [eax], edi
lea eax, [esp + 0x30]
push eax
push 1
cmove ecx, edx
push 1
mov dword [esi + 0xc], ecx
or dword [ebp + 0x1c], 0x1000
push ebx
call dword [ebp + 0xd8]
and dword [ebp + 0x1c], 0xffffefff
test eax, eax
js 0x100a3be1
xor edx, edx
jmp 0x100a37ee
mov dword [esi + 0xc], Ordinal_2
push edx
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003c7d0
mov edi, eax
xor edx, edx
test edi, edi
js 0x100a3816
jmp 0x100a39ae
mov edi, 0xfffff9bd
jmp 0x100a3816
mov ebp, dword [esp + 0x10]
jmp 0x100a3816
xor edx, edx
cmp edi, 0xfffff9bd
jne 0x100a3bdf
cmp dword [esi + 0x50], edx
je 0x100a3bbc
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x100a3bbc
mov eax, dword [esi + 0x5c]
shr eax, 5
and eax, 1
inc eax
imul eax, eax, 0x14
add eax, ecx
mov dword [esi + 0x54], eax
cmp eax, dword [esi + 0x58]
jae 0x100a3bbc
push esi
push ebp
push ebx
call fcn.100a44b6
mov edi, eax
cmp edi, 0xfffff9bd
je 0x100a3bbc
test edi, edi
js 0x100a3bdf
mov ecx, dword [esi + 0x5c]
test ecx, 0x2000
jne 0x100a39ac
test ecx, 0x20000
je 0x100a3953
mov eax, ecx
xor ebp, ebp
shr eax, 5
mov edx, ebp
and eax, 1
imul eax, eax, 0x14
add eax, dword [esi + 0x54]
cmp eax, dword [esi + 0x58]
sbb ebp, ebp
and ebp, eax
cmp dword [esi + 0x48], edx
jne 0x100a38ad
test cl, 0x40
jne 0x100a38fa
mov eax, ecx
shr eax, 0x10
and eax, 1
push eax
mov eax, ecx
shr eax, 0xf
and eax, 1
push eax
mov eax, ecx
shr eax, 1
and eax, 1
test cl, 0x40
push eax
movzx eax, word [esi + 0x46]
push eax
push 0
pop eax
cmovne ebp, eax
push ebp
push dword [esi + 0x4c]
mov ebp, dword [esp + 0x28]
push dword [esi + 0x48]
push ebp
push dword [esi + 0x2c]
push ebx
call fcn.100a3d01
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a3816
inc edx
jmp 0x100a38fe
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi + 0x5c]
test cl, 0x40
je 0x100a3934
shr ecx, 5
xor eax, eax
not ecx
and ecx, 4
test edx, edx
sete al
or ecx, eax
push ecx
push dword [esi + 0x78]
push dword [esi + 0x6c]
push dword [esi + 0x2c]
push ebx
call fcn.1003c720
xor edx, edx
mov edi, eax
inc edx
test edi, edi
js 0x100a3814
test edx, edx
je 0x100a3953
movsx eax, word [esi + 0x42]
push eax
push dword [esi + 0x2c]
push ebx
call fcn.1003cf40
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a3816
mov eax, dword [esi + 0x5c]
test al, 0x40
jne 0x100a3967
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a3967
cmp cl, 0x10
jne 0x100a39ac
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x70]
cmp edx, ecx
jne 0x100a397b
or eax, 0x80
mov dword [esi + 0x5c], eax
jmp 0x100a39ac
lea eax, [ecx - 2]
cmp edx, eax
jae 0x100a3989
xor edx, edx
mov dword [esi + 0x70], edx
jmp 0x100a39ae
cmp byte [esi + 0x64], 0x10
push 0x2a
pop ecx
push 0x25
pop eax
cmove ecx, eax
mov eax, dword [esi + 0x6c]
and dword [esp + 0x20], 0
movzx eax, byte [eax + edx]
cmp eax, ecx
cmovne edx, dword [esp + 0x20]
mov dword [esi + 0x70], edx
xor edx, edx
test byte [esi + 0x5c], 8
je 0x100a3aae
cmp dword [esi + 0x70], edx
je 0x100a3aae
mov ebp, dword [esi + 0x60]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x100a39d4
cmp word [eax], dx
jne 0x100a3771
push edx
push 2
lea eax, [esp + 0x2c]
push eax
push 0x1fe
lea eax, [esp + 0x4c]
push eax
push dword [ebp + 0x28]
push dword [esi + 0x68]
push ebx
call fcn.1003cb60
mov edi, eax
test edi, edi
js 0x100a3bdf
push 0
pop edx
cmp edi, 0x3ec
je 0x100a3771
mov eax, dword [ebp + 0x18]
and eax, 0x7fff
cmp eax, 0xc
jne 0x100a3a22
xor ebp, ebp
mov eax, ebp
mov ebp, dword [esp + 0x10]
jmp 0x100a3a48
test byte [esi + 0x5c], 0x80
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x20]
je 0x100a3a36
or eax, 0x20000000
jmp 0x100a3a48
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a3a43
cmp cl, 0x10
jne 0x100a3a48
or eax, 0x80000000
lea ecx, [esp + 0x1c]
push ecx
push eax
push dword [esp + 0x2c]
lea eax, [esp + 0x48]
push eax
push dword [esi + 0x70]
push dword [esi + 0x6c]
call sym.msjet40.dll_Ordinal_177
mov al, byte [esi + 0x64]
cmp al, 0xf
je 0x100a3a9e
cmp al, 0x10
je 0x100a3a9e
mov ecx, dword [esp + 0x1c]
movzx eax, al
push 0
pop edx
test ecx, ecx
jne 0x100a3a8a
test byte [eax + 0x1000b051], 0x40
je 0x100a3775
jmp 0x100a3afd
jle 0x100a3a95
test byte [eax + 0x1000b051], 1
jmp 0x100a3a82
test byte [eax + 0x1000b051], 2
jmp 0x100a3a82
cmp dword [esp + 0x1c], 0
push 0
pop edx
jne 0x100a3775
jmp 0x100a3afd
cmp dword [esi + 0x38], edx
je 0x100a3aff
test dword [esi + 0x5c], 0x80000
je 0x100a3ad3
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.10116350
test eax, eax
js 0x100a3be1
push dword [esi + 0x38]
push ebp
call fcn.100a3c2e
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a3af9
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.10116350
test edi, edi
js 0x100a3b63
xor edx, edx
mov ebp, dword [esi + 0x3c]
test ebp, ebp
je 0x100a380e
test dword [esi + 0x5c], 0x400
jne 0x100a3b72
test dword [esi + 0x5c], 0x80000
je 0x100a3b33
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.10116350
test eax, eax
js 0x100a3be1
push ebp
mov ebp, dword [esp + 0x14]
push ebp
call fcn.100a3c2e
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a3b5b
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.10116350
test edi, edi
jns 0x100a3814
cmp edi, 0xfffff9bd
jne 0x100a3bdf
xor edx, edx
jmp 0x100a3775
push edx
push Ordinal_2
push dword [esi + 0x2c]
push ebx
call fcn.1003c7d0
test eax, eax
js 0x100a3be1
xor ebp, ebp
push ebp
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003c7d0
test dword [esi + 0x5c], 0x800
je 0x100a3719
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a3719
push ebx
call fcn.10037140
jmp 0x100a3708
test dword [esi + 0x5c], 0x800
je 0x100a3719
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a3719
jmp 0x100a3700
mov eax, edi
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011720d
add esp, 0x230
ret 0x10