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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov edx, dword [ebp + 0x2c]
mov eax, dword [0x7a8498]
xor eax, ebp
mov dword [esp + 0x78], eax
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0xc], ecx
mov ecx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x20]
mov dword [esp], ebx
mov ebx, dword [ebp + 0x24]
mov dword [esp + 4], eax
cmp eax, 0xffffffff
mov dword [esp + 8], ecx
je 0x40b31a
cmp ebx, 0xffffffff
je 0x40b31a
or ecx, dword [esp]
jne 0x40b19a
cmp ebx, 4
jne 0x40b19a
mov ecx, edi
shld ecx, esi, 0x18
mov edx, edi
shr edx, 8
mov eax, 0x225c17c
cmp eax, ecx
mov eax, 0
sbb eax, edx
mov edx, dword [ebp + 0x2c]
jb 0x40b320
mov ecx, 0x3b9aca00
mov eax, esi
mul ecx
imul edi, edi, 0x3b9aca00
mov ecx, dword [esp + 4]
mov esi, ecx
shr esi, 2
add esi, eax
adc edi, edx
mov edx, dword [ebp + 0x2c]
and ecx, 3
jmp 0x40b29a
mov ecx, dword [esp + 8]
mov eax, ecx
or eax, dword [esp]
jne 0x40b1f3
cmp ebx, 0x190
jne 0x40b1f3
mov eax, 0xbf94d454
cmp eax, esi
mov eax, 0xd6
sbb eax, edi
jb 0x40b320
mov ecx, 0x989680
mov eax, esi
mul ecx
mov ebx, edx
mov edx, 0x51eb851f
mov esi, eax
mov ecx, dword [esp + 4]
mov eax, ecx
mul edx
imul edi, edi, 0x989680
shr edx, 7
add esi, edx
adc edi, ebx
imul eax, edx, 0x190
jmp 0x40b295
mov eax, ecx
or eax, dword [esp]
jne 0x40b245
cmp ebx, 0xfa0
jne 0x40b245
mov eax, 0x7bd04b55
cmp eax, esi
mov eax, 0x863
sbb eax, edi
jb 0x40b320
mov ecx, 0xf4240
mov eax, esi
mul ecx
mov ebx, edx
mov edx, 0x10624dd3
mov esi, eax
mov ecx, dword [esp + 4]
mov eax, ecx
mul edx
imul edi, edi, 0xf4240
shr edx, 8
add esi, edx
adc edi, ebx
imul eax, edx, 0xfa0
jmp 0x40b295
mov eax, ecx
or eax, dword [esp]
jne 0x40b2ab
cmp ebx, 0x3d0900
jne 0x40b2ab
mov eax, 0xa5a64af6
cmp eax, esi
mov eax, 0x20c49b
sbb eax, edi
jb 0x40b320
mov ecx, 0x3e8
mov eax, esi
mul ecx
mov ebx, edx
mov edx, 0x431bde83
mov esi, eax
mov ecx, dword [esp + 4]
mov eax, ecx
mul edx
imul edi, edi, 0x3e8
shr edx, 0x14
add esi, edx
adc edi, ebx
imul eax, edx, 0x3d0900
mov edx, dword [ebp + 0x2c]
sub ecx, eax
xor ebx, ebx
xor eax, eax
mov dword [edx], ebx
mov dword [edx + 4], eax
mov dword [edx + 8], ecx
jmp 0x40b388
cmp ecx, 1
mov eax, dword [esp]
sbb eax, 0
jl 0x40b31a
test ebx, ebx
jne 0x40b31a
test edi, edi
mov ecx, dword [esp + 4]
js 0x40b727
mov eax, dword [esp + 8]
xor eax, 1
xor ebx, ebx
or eax, dword [esp]
je 0x40b29c
mov ebx, dword [esp]
push ebx
mov eax, dword [esp + 0xc]
push eax
push edi
push esi
call fcn.006c95b0
mov dword [esp + 0x14], edx
mov ecx, eax
mul dword [esp + 8]
mov dword [esp + 0xc], eax
imul ebx, ecx
add edx, ebx
mov eax, dword [esp + 0x14]
imul eax, dword [esp + 8]
add eax, edx
mov edx, dword [ebp + 0x2c]
mov ebx, esi
sub ebx, dword [esp + 0xc]
sbb edi, eax
mov eax, edi
mov edi, dword [esp + 0x14]
mov esi, ecx
jmp 0x40b792
mov eax, esi
or eax, edi
je 0x40b327
mov eax, edi
shr eax, 0x1f
jmp 0x40b329
xor eax, eax
mov ecx, dword [esp]
test ecx, ecx
sets cl
mov dword [esp + 0x14], eax
xor cl, al
cmp dword [esp + 4], 0xffffffff
je 0x40b34b
mov eax, dword [esp + 8]
or eax, dword [esp]
jne 0x40b39f
test ebx, ebx
jne 0x40b39f
xor eax, eax
dec eax
mov esi, eax
add esi, 1
mov edi, bind
adc edi, 0
cmp byte [esp + 0x14], 0
mov ebx, ecx
mov ecx, eax
cmovne ecx, esi
mov dword [edx], ecx
mov ecx, bind
cmovne ecx, edi
mov dword [edx + 4], ecx
test bl, bl
cmove esi, eax
mov dword [edx + 8], 0xffffffff
mov eax, bind
cmove edi, eax
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.006c9121
mov eax, esi
mov edx, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp ebx, 0xffffffff
je 0x40b4f6
mov byte [esp + 0x13], cl
mov eax, edi
sar eax, 0x1f
mov ecx, eax
xor eax, esi
mov esi, 0xee6b2800
mov edx, dword [esp + 4]
sub esi, edx
xor ecx, edi
test edi, edi
cmovns esi, edx
mov edx, 0xee6b2800
mul edx
mov dword [esp + 0xc], edx
mov edi, eax
mov eax, ecx
mov edx, 0xee6b2800
mul edx
imul eax, ecx, 0xee6b2800
add edi, esi
mov dword [esp + 4], edi
adc eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
adc edx, 0
mov dword [esp + 0x24], edx
setb byte [esp + 0x18]
mov edx, dword [esp]
mov eax, edx
sar eax, 0x1f
mov ecx, eax
xor eax, dword [esp + 8]
mov edi, 0xee6b2800
sub edi, ebx
xor ecx, edx
test edx, edx
cmovns edi, ebx
mov edx, 0xee6b2800
mul edx
mov ebx, eax
mov dword [esp + 8], edx
imul esi, ecx, 0xee6b2800
mov eax, ecx
mov ecx, 0xee6b2800
mul ecx
add ebx, edi
adc esi, dword [esp + 8]
adc edx, 0
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x50]
movdqa xmmword [edi], xmm0
movzx ecx, byte [esp + 0x18]
setb al
movzx eax, al
mov dword [esp + 0x44], eax
push eax
mov dword [esp + 0x4c], edx
push edx
mov dword [esp + 0x10], esi
push esi
mov dword [esp + 0xc], ebx
push ebx
mov dword [esp + 0x5c], ecx
push ecx
push dword [esp + 0x38]
push dword [esp + 0x24]
push dword [esp + 0x20]
push edi
call fcn.00408eb8
add esp, 0x24
mov ebx, dword [edi]
mov edx, dword [edi + 4]
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 8]
cmp byte [ebp + 8], 0
mov dword [esp + 0x18], esi
je 0x40b512
mov dword [esp + 0x20], ebx
xor eax, eax
test edx, edx
sets al
mov ebx, edx
xor edx, edx
mov edi, ecx
or edi, esi
mov edi, ebx
setne dl
cmovne eax, edx
cmp al, 1
mov ebx, dword [esp + 0x20]
jne 0x40b514
xor ecx, ecx
xor eax, eax
dec eax
mov ebx, eax
add ebx, 1
mov edi, bind
adc edi, ecx
cmp byte [esp + 0x13], 0
mov edx, bind
cmove edi, edx
cmove ebx, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x18], 0
jmp 0x40b514
mov dword [edx], esi
mov dword [edx + 4], edi
mov eax, dword [esp + 4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xc]
mov dword [edx + 0xc], eax
xor esi, esi
xor edi, edi
jmp 0x40b388
mov edi, edx
mov dword [esp + 0x30], ecx
mov eax, ebx
mov esi, dword [esp]
mul esi
mov ecx, edx
mov dword [esp + 0x1c], eax
mov eax, edi
mul esi
mov esi, edi
mov edi, eax
mov dword [esp + 0x3c], edx
xor eax, eax
add edi, ecx
setb al
mov dword [esp + 0x40], eax
mov eax, ebx
mov ecx, dword [esp + 8]
mul ecx
mov dword [esp + 0x38], edx
xor edx, edx
add eax, edi
setb dl
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x1c]
sub dword [esp + 4], edx
sbb dword [esp + 0xc], eax
setb byte [esp + 0x1c]
mov eax, esi
mul ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x2c], eax
mov eax, ebx
mov edi, dword [esp + 0x48]
mul edi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x44]
imul eax, ebx
add eax, edx
imul esi, edi
add esi, eax
mov ecx, dword [esp + 0x30]
mov eax, ecx
mul dword [esp]
mov edi, eax
imul ecx, dword [esp + 8]
add ecx, edx
mov ebx, dword [esp + 0x18]
imul ebx, dword [esp]
add ebx, ecx
add edi, dword [esp + 0x28]
adc ebx, esi
add edi, dword [esp + 0x2c]
adc ebx, dword [esp + 0x34]
xor eax, eax
mov esi, dword [esp + 0x38]
add esi, dword [esp + 0x3c]
setb al
mov edx, dword [esp + 0x24]
sub edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
sbb ecx, 0
add esi, edi
adc eax, ebx
sub edx, esi
sbb ecx, eax
sub edx, dword [esp + 0x20]
sbb ecx, 0
movzx eax, byte [esp + 0x1c]
sub edx, eax
sbb ecx, 0
mov eax, edx
or eax, ecx
je 0x40b641
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0xc]
cmp edx, 0x77359400
mov eax, ecx
sbb eax, 0
jb 0x40b660
xor edx, 0x77359400
or edx, ecx
sete al
mov edx, dword [esp + 0x14]
and al, dl
or ebx, edi
sete cl
and cl, al
or dl, cl
xor eax, eax
dec eax
mov esi, eax
add esi, 1
mov edi, bind
adc edi, 0
test dl, dl
mov edx, bind
cmove edi, edx
cmove esi, eax
movzx ebx, cl
dec ebx
jmp 0x40b6c0
push 0
push 0xee6b2800
push dword [esp + 0x14]
mov esi, dword [esp + 0x10]
push esi
call fcn.006c95b0
imul ecx, eax, 0x1194d800
add ecx, esi
jmp 0x40b691
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x60]
movdqa xmmword [esi], xmm0
xor eax, eax
push eax
push eax
push eax
mov eax, 0xee6b2800
push eax
push ecx
push edx
push edi
push ebx
push esi
call fcn.00408eb8
add esp, 0x24
mov eax, dword [esi]
mov edx, dword [esi + 4]
imul ecx, eax, 0x1194d800
add ecx, ebx
cmp byte [esp + 0x14], 0
je 0x40b6ba
xor ebx, ebx
mov esi, eax
neg esi
mov edi, 0
sbb edi, edx
test ecx, ecx
je 0x40b6c0
not eax
not edx
mov ebx, 0xee6b2800
sub ebx, ecx
mov esi, eax
mov edi, edx
jmp 0x40b6c0
mov esi, eax
mov edi, edx
mov ebx, ecx
mov eax, dword [ebp + 0x2c]
mov dword [eax], esi
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
cmp byte [esp + 0x13], 0
je 0x40b712
mov edx, dword [esp + 0x58]
or edx, eax
mov edi, dword [esp + 0x5c]
or edi, ecx
xor esi, esi
or edi, edx
mov edi, 0
je 0x40b388
xor edx, edx
neg eax
sbb edx, ecx
xor esi, esi
dec esi
add esi, 1
mov edi, bind
adc edi, 0
or edi, edx
or esi, eax
jmp 0x40b388
xor edx, edx
dec edx
and eax, edx
mov edx, bind
and ecx, edx
mov esi, eax
mov edi, ecx
jmp 0x40b388
test ecx, ecx
mov eax, 0
setne al
neg eax
mov ebx, eax
sub ebx, esi
sbb eax, edi
mov dword [esp + 0xc], eax
push dword [esp]
mov edi, dword [esp + 0xc]
push edi
push eax
push ebx
call fcn.006c95b0
mov esi, eax
mov dword [esp + 0x14], edx
mul edi
mov ecx, dword [esp]
imul ecx, esi
add edx, ecx
imul edi, dword [esp + 0x14]
add edi, edx
sub ebx, eax
mov ecx, dword [esp + 0xc]
sbb ecx, edi
xor edi, edi
mov eax, ebx
neg eax
mov edx, 0
sbb edx, ecx
cmp dword [esp + 4], 0
not ecx
cmove ecx, edx
mov edx, dword [ebp + 0x2c]
not ebx
cmove ebx, eax
mov eax, ecx
neg esi
sbb edi, dword [esp + 0x14]
mov ecx, dword [esp + 4]
jmp 0x40b29e