Function at 0x100a347e
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 0x100a3575
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x5c]
test al, 1
jne 0x100a352d
push edx
push Ordinal_2
push dword [esi + 0x2c]
or eax, 1
push ebx
mov dword [esi + 0x5c], eax
call fcn.1003c730
mov edi, eax
cmp edi, 0xfffff9bd
jne 0x100a3523
test dword [esi + 0x5c], 0x800
je 0x100a3519
push ebx
call fcn.100370f0
xor ebp, ebp
push ebp
push ebp
push ebp
push 0xffffddcd
push ebp
push ebp
push ebp
push ebx
call fcn.10037730
mov eax, 0xfffff9bd
jmp 0x100a39e1
test edi, edi
js 0x100a39e1
xor edx, edx
test byte [esi + 0x5c], 8
je 0x100a3542
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 0x100a3753
test dword [esi + 0x5c], 0x100
jne 0x100a3753
test byte [esi + 0x5c], 0x40
je 0x100a3569
cmp dword [esi + 0x78], edx
je 0x100a3753
mov dword [esi + 0x54], eax
jmp 0x100a3651
mov ebp, dword [esp + 0x10]
test dword [esi + 0x5c], 0x2000
jne 0x100a3607
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 1]
mov dword [esi + 0xc], eax
test ecx, ecx
jne 0x100a35ee
cmp dword [ebp + 0xd8], edx
je 0x100a35e7
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 0x100a39e1
xor edx, edx
jmp 0x100a35ee
mov dword [esi + 0xc], Ordinal_2
push edx
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003c730
mov edi, eax
xor edx, edx
test edi, edi
js 0x100a3616
jmp 0x100a37ae
mov edi, 0xfffff9bd
jmp 0x100a3616
mov ebp, dword [esp + 0x10]
jmp 0x100a3616
xor edx, edx
cmp edi, 0xfffff9bd
jne 0x100a39df
cmp dword [esi + 0x50], edx
je 0x100a39bc
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x100a39bc
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 0x100a39bc
push esi
push ebp
push ebx
call fcn.100a42b6
mov edi, eax
cmp edi, 0xfffff9bd
je 0x100a39bc
test edi, edi
js 0x100a39df
mov ecx, dword [esi + 0x5c]
test ecx, 0x2000
jne 0x100a37ac
test ecx, 0x20000
je 0x100a3753
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 0x100a36ad
test cl, 0x40
jne 0x100a36fa
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.100a3b01
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a3616
inc edx
jmp 0x100a36fe
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi + 0x5c]
test cl, 0x40
je 0x100a3734
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.1003c680
xor edx, edx
mov edi, eax
inc edx
test edi, edi
js 0x100a3614
test edx, edx
je 0x100a3753
movsx eax, word [esi + 0x42]
push eax
push dword [esi + 0x2c]
push ebx
call fcn.1003cea0
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a3616
mov eax, dword [esi + 0x5c]
test al, 0x40
jne 0x100a3767
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a3767
cmp cl, 0x10
jne 0x100a37ac
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x70]
cmp edx, ecx
jne 0x100a377b
or eax, 0x80
mov dword [esi + 0x5c], eax
jmp 0x100a37ac
lea eax, [ecx - 2]
cmp edx, eax
jae 0x100a3789
xor edx, edx
mov dword [esi + 0x70], edx
jmp 0x100a37ae
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 0x100a38ae
cmp dword [esi + 0x70], edx
je 0x100a38ae
mov ebp, dword [esi + 0x60]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x100a37d4
cmp word [eax], dx
jne 0x100a3571
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.1003cac0
mov edi, eax
test edi, edi
js 0x100a39df
push 0
pop edx
cmp edi, 0x3ec
je 0x100a3571
mov eax, dword [ebp + 0x18]
and eax, 0x7fff
cmp eax, 0xc
jne 0x100a3822
xor ebp, ebp
mov eax, ebp
mov ebp, dword [esp + 0x10]
jmp 0x100a3848
test byte [esi + 0x5c], 0x80
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x20]
je 0x100a3836
or eax, 0x20000000
jmp 0x100a3848
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a3843
cmp cl, 0x10
jne 0x100a3848
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 0x100a389e
cmp al, 0x10
je 0x100a389e
mov ecx, dword [esp + 0x1c]
movzx eax, al
push 0
pop edx
test ecx, ecx
jne 0x100a388a
test byte [eax + 0x1000b125], 0x40
je 0x100a3575
jmp 0x100a38fd
jle 0x100a3895
test byte [eax + 0x1000b125], 1
jmp 0x100a3882
test byte [eax + 0x1000b125], 2
jmp 0x100a3882
cmp dword [esp + 0x1c], 0
push 0
pop edx
jne 0x100a3575
jmp 0x100a38fd
cmp dword [esi + 0x38], edx
je 0x100a38ff
test dword [esi + 0x5c], 0x80000
je 0x100a38d3
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.101161a0
test eax, eax
js 0x100a39e1
push dword [esi + 0x38]
push ebp
call fcn.100a3a2e
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a38f9
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.101161a0
test edi, edi
js 0x100a3963
xor edx, edx
mov ebp, dword [esi + 0x3c]
test ebp, ebp
je 0x100a360e
test dword [esi + 0x5c], 0x400
jne 0x100a3972
test dword [esi + 0x5c], 0x80000
je 0x100a3933
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.101161a0
test eax, eax
js 0x100a39e1
push ebp
mov ebp, dword [esp + 0x14]
push ebp
call fcn.100a3a2e
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a395b
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.101161a0
test edi, edi
jns 0x100a3614
cmp edi, 0xfffff9bd
jne 0x100a39df
xor edx, edx
jmp 0x100a3575
push edx
push Ordinal_2
push dword [esi + 0x2c]
push ebx
call fcn.1003c730
test eax, eax
js 0x100a39e1
xor ebp, ebp
push ebp
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003c730
test dword [esi + 0x5c], 0x800
je 0x100a3519
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a3519
push ebx
call fcn.100370f0
jmp 0x100a3508
test dword [esi + 0x5c], 0x800
je 0x100a3519
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a3519
jmp 0x100a3500
mov eax, edi
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1011705d
add esp, 0x230
ret 0x10