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

Disassembly:
sub esp, 0x230
mov eax, dword [0x101366b4]
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 0x100a4196
mov eax, dword [esi + 0xc]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x5c]
test al, 1
jne 0x100a414e
push edx
push Ordinal_2
push dword [esi + 0x2c]
or eax, 1
push ebx
mov dword [esi + 0x5c], eax
call fcn.1003cb30
mov edi, eax
cmp edi, 0xfffff9bd
jne 0x100a4144
test dword [esi + 0x5c], 0x800
je 0x100a413a
push ebx
call fcn.100372a0
xor ebp, ebp
push ebp
push ebp
push ebp
push 0xffffddcd
push ebp
push ebp
push ebp
push ebx
call fcn.100378e0
mov eax, 0xfffff9bd
jmp 0x100a4602
test edi, edi
js 0x100a4602
xor edx, edx
test byte [esi + 0x5c], 8
je 0x100a4163
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 0x100a4374
test dword [esi + 0x5c], 0x100
jne 0x100a4374
test byte [esi + 0x5c], 0x40
je 0x100a418a
cmp dword [esi + 0x78], edx
je 0x100a4374
mov dword [esi + 0x54], eax
jmp 0x100a4272
mov ebp, dword [esp + 0x10]
test dword [esi + 0x5c], 0x2000
jne 0x100a4228
mov ecx, dword [esi + 0xc]
lea eax, [ecx - 1]
mov dword [esi + 0xc], eax
test ecx, ecx
jne 0x100a420f
cmp dword [ebp + 0xd8], edx
je 0x100a4208
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 0x100a4602
xor edx, edx
jmp 0x100a420f
mov dword [esi + 0xc], Ordinal_2
push edx
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003cb30
mov edi, eax
xor edx, edx
test edi, edi
js 0x100a4237
jmp 0x100a43cf
mov edi, 0xfffff9bd
jmp 0x100a4237
mov ebp, dword [esp + 0x10]
jmp 0x100a4237
xor edx, edx
cmp edi, 0xfffff9bd
jne 0x100a4600
cmp dword [esi + 0x50], edx
je 0x100a45dd
mov ecx, dword [esi + 0x54]
test ecx, ecx
je 0x100a45dd
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 0x100a45dd
push esi
push ebp
push ebx
call fcn.1018fe59
mov edi, eax
cmp edi, 0xfffff9bd
je 0x100a45dd
test edi, edi
js 0x100a4600
mov ecx, dword [esi + 0x5c]
test ecx, 0x2000
jne 0x100a43cd
test ecx, 0x20000
je 0x100a4374
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 0x100a42ce
test cl, 0x40
jne 0x100a431b
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.100a4722
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a4237
inc edx
jmp 0x100a431f
mov ebp, dword [esp + 0x10]
mov ecx, dword [esi + 0x5c]
test cl, 0x40
je 0x100a4355
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.1003ca80
xor edx, edx
mov edi, eax
inc edx
test edi, edi
js 0x100a4235
test edx, edx
je 0x100a4374
movsx eax, word [esi + 0x42]
push eax
push dword [esi + 0x2c]
push ebx
call fcn.1003d2a0
mov edi, eax
push 0
pop edx
test edi, edi
js 0x100a4237
mov eax, dword [esi + 0x5c]
test al, 0x40
jne 0x100a4388
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a4388
cmp cl, 0x10
jne 0x100a43cd
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x70]
cmp edx, ecx
jne 0x100a439c
or eax, 0x80
mov dword [esi + 0x5c], eax
jmp 0x100a43cd
lea eax, [ecx - 2]
cmp edx, eax
jae 0x100a43aa
xor edx, edx
mov dword [esi + 0x70], edx
jmp 0x100a43cf
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 0x100a44cf
cmp dword [esi + 0x70], edx
je 0x100a44cf
mov ebp, dword [esi + 0x60]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x100a43f5
cmp word [eax], dx
jne 0x100a4192
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.1003cec0
mov edi, eax
test edi, edi
js 0x100a4600
push 0
pop edx
cmp edi, 0x3ec
je 0x100a4192
mov eax, dword [ebp + 0x18]
and eax, 0x7fff
cmp eax, 0xc
jne 0x100a4443
xor ebp, ebp
mov eax, ebp
mov ebp, dword [esp + 0x10]
jmp 0x100a4469
test byte [esi + 0x5c], 0x80
mov ebp, dword [esp + 0x10]
mov eax, dword [ebp + 0x20]
je 0x100a4457
or eax, 0x20000000
jmp 0x100a4469
mov cl, byte [esi + 0x64]
cmp cl, 0xf
je 0x100a4464
cmp cl, 0x10
jne 0x100a4469
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 0x100a44bf
cmp al, 0x10
je 0x100a44bf
mov ecx, dword [esp + 0x1c]
movzx eax, al
push 0
pop edx
test ecx, ecx
jne 0x100a44ab
test byte [eax + 0x1000b0d1], 0x40
je 0x100a4196
jmp 0x100a451e
jle 0x100a44b6
test byte [eax + 0x1000b0d1], 1
jmp 0x100a44a3
test byte [eax + 0x1000b0d1], 2
jmp 0x100a44a3
cmp dword [esp + 0x1c], 0
push 0
pop edx
jne 0x100a4196
jmp 0x100a451e
cmp dword [esi + 0x38], edx
je 0x100a4520
test dword [esi + 0x5c], 0x80000
je 0x100a44f4
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.10116e40
test eax, eax
js 0x100a4602
push dword [esi + 0x38]
push ebp
call fcn.100a464f
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a451a
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.10116e40
test edi, edi
js 0x100a4584
xor edx, edx
mov ebp, dword [esi + 0x3c]
test ebp, ebp
je 0x100a422f
test dword [esi + 0x5c], 0x400
jne 0x100a4593
test dword [esi + 0x5c], 0x80000
je 0x100a4554
lea eax, [esp + 0x14]
push eax
push edx
push dword [esp + 0x20]
call fcn.10116e40
test eax, eax
js 0x100a4602
push ebp
mov ebp, dword [esp + 0x14]
push ebp
call fcn.100a464f
test dword [esi + 0x5c], 0x80000
mov edi, eax
je 0x100a457c
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x18]
push dword [esp + 0x20]
call fcn.10116e40
test edi, edi
jns 0x100a4235
cmp edi, 0xfffff9bd
jne 0x100a4600
xor edx, edx
jmp 0x100a4196
push edx
push Ordinal_2
push dword [esi + 0x2c]
push ebx
call fcn.1003cb30
test eax, eax
js 0x100a4602
xor ebp, ebp
push ebp
push 1
push dword [esi + 0x2c]
push ebx
call fcn.1003cb30
test dword [esi + 0x5c], 0x800
je 0x100a413a
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a413a
push ebx
call fcn.100372a0
jmp 0x100a4129
test dword [esi + 0x5c], 0x800
je 0x100a413a
cmp dword [esp + 0x24c], 0x80000000
jne 0x100a413a
jmp 0x100a4121
mov eax, edi
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.10117cfd
add esp, 0x230
ret 0x10