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

Disassembly:
sub esp, 0x10
push ebx
push ebp
xor ebp, ebp
mov ebx, ebp
push esi
push edi
test ecx, ecx
jne 0x40b9e4
push 0xffffffffffffff9a
pop eax
jmp 0x40bbf1
mov esi, dword [ecx + 0xd8]
test esi, esi
je 0x40b9dc
cmp dword [esi], ebp
jne 0x40b9f6
push 0xffffffffffffff9c
jmp 0x40b9de
mov dword [esi + 0x10], edx
mov edx, 0x40000
mov dword [esi + 0x14], edx
cmp dword [esi + 0x78], ebp
ja 0x40ba1b
jb 0x40ba0d
cmp dword [esi + 0x74], edx
jae 0x40ba1b
cmp dword [esi + 0xb8], ebp
jne 0x40ba1b
mov eax, dword [esi + 0x74]
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 8]
xor eax, eax
add ecx, dword [esi + 0x6c]
adc eax, dword [esi + 0x70]
cmp eax, ebp
ja 0x40bbe6
jb 0x40ba38
cmp ecx, edx
jae 0x40bbe6
cmp dword [esi + 0xb8], ebp
je 0x40bbe6
mov eax, dword [esi + 0x6c]
add eax, dword [esi + 8]
mov dword [esi + 0x14], eax
jmp 0x40bbe6
cmp dword [esi + 8], ebp
jne 0x40bade
mov eax, dword [esi + 0x70]
cmp eax, ebp
ja 0x40ba67
cmp dword [esi + 0x6c], ebp
jbe 0x40bade
mov edi, 0x4000
cmp eax, ebp
ja 0x40ba82
jb 0x40ba77
cmp dword [esi + 0x6c], edi
jae 0x40ba82
mov edi, dword [esi + 0x6c]
test edi, edi
je 0x40bbfb
mov ecx, dword [esi + 0xb0]
add ecx, dword [esi + 0x3c]
mov eax, dword [esi + 0xb4]
adc eax, dword [esi + 0x40]
mov edx, dword [esi + 0xa8]
push ebp
push eax
push ecx
lea ecx, [esi + 0x7c]
call fcn.004059da
test eax, eax
jne 0x40bbff
push edi
push dword [esi]
push dword [esi + 0xa8]
push dword [esi + 0x98]
call dword [esi + 0x80]
cmp eax, edi
jne 0x40bbff
add dword [esi + 0x3c], edi
mov eax, dword [esi]
adc dword [esi + 0x40], ebp
sub dword [esi + 0x6c], edi
mov dword [esi + 4], eax
sbb dword [esi + 0x70], ebp
mov dword [esi + 8], edi
mov eax, dword [esi + 0xac]
test eax, eax
je 0x40bb7d
cmp dword [esi + 0xb8], ebp
jne 0x40bb7d
cmp eax, 0xc
je 0x40bbe6
mov eax, dword [esi + 0x18]
lea ecx, [esi + 4]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x14], eax
call fcn.0040408b
mov edi, eax
test edi, edi
js 0x40bb26
cmp dword [esi + 0x1c], ebp
push 0xfffffffffffffffd
pop eax
cmovne edi, eax
mov ebp, dword [esi + 0x18]
mov eax, ebp
sub eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push 0
pop ecx
sbb ecx, ecx
mov dword [esp + 0x18], eax
add dword [esi + 0x5c], eax
mov dword [esp + 0x1c], ecx
adc dword [esi + 0x60], ecx
test edx, edx
jne 0x40bb4e
xor ecx, ecx
jmp 0x40bb5d
mov ecx, dword [esi + 0x64]
push eax
call fcn.004027be
mov ecx, eax
mov eax, dword [esp + 0x18]
sub dword [esi + 0x74], eax
mov eax, dword [esp + 0x1c]
sbb dword [esi + 0x78], eax
sub ebp, dword [esp + 0x10]
add ebx, ebp
mov dword [esi + 0x64], ecx
cmp edi, 1
je 0x40bbef
test edi, edi
je 0x40bbe4
mov eax, edi
jmp 0x40bbf1
mov edi, dword [esi + 8]
test edi, edi
jne 0x40bb8c
mov eax, dword [esi + 0x6c]
or eax, dword [esi + 0x70]
je 0x40bbef
cmp dword [esi + 0x14], edi
mov edx, ebp
cmovb edi, dword [esi + 0x14]
test edi, edi
je 0x40bbaa
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x10]
mov al, byte [edx + eax]
mov byte [edx + ecx], al
inc edx
cmp edx, edi
jb 0x40bb99
add dword [esi + 0x5c], edi
adc dword [esi + 0x60], ebp
mov ebp, dword [esi + 0x10]
test ebp, ebp
jne 0x40bbbb
xor eax, eax
jmp 0x40bbc6
mov ecx, dword [esi + 0x64]
mov edx, ebp
push edi
call fcn.004027be
sub dword [esi + 0x74], edi
mov dword [esi + 0x64], eax
lea eax, [edi + ebp]
sbb dword [esi + 0x78], 0
sub dword [esi + 8], edi
sub dword [esi + 0x14], edi
add dword [esi + 4], edi
add dword [esi + 0x18], edi
add ebx, edi
mov dword [esi + 0x10], eax
xor ebp, ebp
cmp dword [esi + 0x14], ebp
ja 0x40ba52
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 4
xor eax, eax
jmp 0x40bbf1
or eax, 0xffffffff
jmp 0x40bbf1