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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
movq xmm0, qword [esp + 0x108]
mov ecx, dword [esp + 0x124]
mov ebp, dword [esp + 0x10c]
mov esi, 0x7fffffff
mov edx, 0x80010000
mov ebx, dword [esp + 0x120]
movd eax, xmm0
and ecx, esi
and esi, dword [esp + 0x114]
xor edi, edi
movq xmm0, qword [esp + 0x118]
inc edi
mov dword [esp], eax
cmp eax, 1
mov eax, ebp
sbb eax, 0
mov eax, dword [esp + 0x110]
mov dword [esp + 0xc], esi
jmp 0x403f01
sbb eax, 0
lea eax, [esi + edx]
mov esi, dword [esp + 0x11c]
sbb eax, 0x80010000
movd eax, xmm0
jb 0x403fea
cmp eax, edi
mov ebp, esi
sbb ebp, 0
mov ebp, ebx
sbb ebp, 0
lea ebp, [ecx + edx]
sbb ebp, edx
mov ebp, dword [esp + 0x10c]
jb 0x403fea
mov dword [esp + 0x1c], edi
cmp dword [esp], eax
mov edi, dword [esp + 0x110]
mov edx, ebp
mov eax, ebx
sbb edx, esi
mov edx, edi
sbb edx, ebx
sbb dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x114]
cmovb eax, edi
cmovb esi, ebp
cmovb ebp, dword [esp + 0x11c]
cmovb edi, ebx
mov dword [esp], eax
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x118]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x28], ebp
cmovb eax, esi
cmovb esi, dword [esp + 0x118]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x124]
mov dword [esp + 0x14], esi
mov edx, eax
cmovb edx, ecx
cmovb ecx, eax
mov eax, 0x7fff
mov ebx, ecx
mov ebp, edx
mov dword [esp + 8], edx
mov edx, 0xffff
mov esi, ecx
jmp 0x403fc4
shr ebp, 0x10
shr ebx, 0x10
and esi, edx
and ebp, eax
and ebx, eax
push 0x3f
pop edx
mov dword [esp + 0x10], ecx
je 0x40408b
mov dword [esp + 4], esi
mov dword [esp + 0x24], edi
jmp 0x404176
mov dword [esp + 8], eax
jmp 0x403ff5
cmp dword [esp], 1
mov eax, dword [esp + 0x110]
mov ebx, esi
mov esi, dword [esp + 0xc]
mov edx, ebp
sbb edx, 0
mov edx, eax
sbb edx, 0
mov edx, esi
sbb edx, 0x7fff0000
jb 0x40403d
mov ebx, eax
mov eax, dword [esp + 0x114]
mov esi, dword [esp + 0x108]
jmp 0x404031
mov edi, ebp
or eax, 0x8000
jmp 0x4046ff
jmp 0x40403f
cmp dword [esp + 8], 1
mov edx, ebx
mov edi, ebx
mov ebx, dword [esp + 0x120]
sbb edx, 0
mov edx, ebx
sbb edx, 0
mov edx, ecx
sbb edx, 0x7fff0000
jb 0x40452a
mov edx, dword [esp + 0x124]
mov eax, dword [esp + 0x104]
mov esi, dword [esp + 0x118]
jmp 0x404080
or edx, 0x8000
jmp 0x4047f9
bsr eax, edi
bsr ecx, esi
jmp 0x404094
mov ebx, dword [esp + 0x28]
xor eax, 0x1f
xor ecx, 0x1f
add al, 0x20
test esi, esi
movzx eax, al
cmovne eax, ecx
bsr ecx, dword [esp + 0x14]
mov dword [esp + 0xe8], edi
cmove ecx, edx
xor ecx, 0x1f
add cl, 0x20
movzx edx, cl
bsr ecx, ebx
xor ecx, 0x1f
test ebx, ebx
cmove ecx, edx
add cl, 0x40
or edi, esi
movzx ecx, cl
cmovne ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xec], esi
and dword [esp + 0xdc], 0
and dword [esp + 0xd8], 0
and dword [esp + 0xd4], 0
and dword [esp + 0xd0], 0
add cl, 0xf1
mov edx, ecx
movzx edi, cl
and cl, 0x78
shr cl, 3
mov ch, dl
neg cl
mov dword [esp + 0xe0], eax
and ch, 7
movsx ebx, cl
mov cl, ch
mov eax, dword [esp + ebx + 0xe8]
mov edx, dword [esp + ebx + 0xec]
shld edx, eax, cl
shl eax, cl
not cl
mov dword [esp + 4], edx
mov esi, dword [esp + ebx + 0xe4]
mov edx, esi
shr edx, 1
shr edx, cl
mov cl, ch
or edx, eax
xor eax, eax
mov dword [esp + 0x24], edx
inc eax
mov edx, dword [esp + ebx + 0xe0]
sub eax, edi
mov ebx, eax
shld esi, edx, cl
shl edx, cl
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], esi
mov dword [esp + 0x14], edx
mov esi, dword [esp + 8]
mov eax, 0xffff
jmp 0x404188
mov dword [esp + 0x20], ebx
and esi, eax
test ebp, ebp
je 0x4041ac
mov eax, esi
mov dword [esp + 0x2c], ebp
mov edx, dword [esp + 4]
mov edi, dword [esp]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
jmp 0x40429f
jmp 0x4041b2
mov edi, dword [esp]
bsr edx, esi
xor edx, 0x1f
bsr ecx, edi
xor ecx, 0x1f
add cl, 0x20
test esi, esi
movzx ecx, cl
cmovne ecx, edx
bsr edx, dword [esp + 0x18]
push 0x3f
pop eax
mov ebp, dword [esp + 0xc]
cmove edx, eax
mov dword [esp + 0xc8], edi
xor edx, 0x1f
add dl, 0x20
movzx ebx, dl
bsr edx, ebp
xor edx, 0x1f
test ebp, ebp
cmove edx, ebx
add dl, 0x40
or edi, esi
movzx ebx, dl
cmovne ebx, ecx
add bl, 0xf1
movzx eax, bl
mov ecx, ebx
mov edx, ebx
mov dword [esp], eax
mov eax, dword [esp + 0x18]
and cl, 0x78
mov dword [esp + 0xc4], ebp
mov dword [esp + 0xcc], esi
and dword [esp + 0xbc], 0
and dword [esp + 0xb8], 0
and dword [esp + 0xb4], 0
and dword [esp + 0xb0], 0
and dl, 7
shr cl, 3
neg cl
movsx ebx, cl
mov ecx, edx
mov dword [esp + 0xc0], eax
mov esi, dword [esp + ebx + 0xc4]
mov ebp, dword [esp + ebx + 0xc8]
mov eax, dword [esp + ebx + 0xcc]
mov edi, esi
shld eax, ebp, cl
shl ebp, cl
not cl
shr edi, 1
shr edi, cl
or edi, ebp
xor ecx, ecx
inc ecx
sub ecx, dword [esp]
mov dword [esp + 0x2c], ecx
mov ecx, edx
mov edx, dword [esp + 4]
mov ebp, dword [esp + ebx + 0xc0]
mov ebx, dword [esp + 0x20]
shld esi, ebp, cl
shl ebp, cl
mov ecx, dword [esp + 0x10]
xor dword [esp + 8], ecx
mov ecx, dword [esp + 0x24]
shld eax, edi, 3
shld edi, esi, 3
shld esi, ebp, 3
shl ebp, 3
mov dword [esp], edi
mov edi, ebp
shld edx, ecx, 3
mov ecx, 0x80000
or eax, ecx
sub ebx, dword [esp + 0x2c]
jmp 0x4042ce
jne 0x4042dd
mov dword [esp + 0xc], esi
mov dword [esp + 0x1c], edi
jmp 0x40443b
cmp ebx, 0x7f
jmp 0x4042e6
ja 0x40442a
jmp 0x4042f3
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], esi
mov ecx, dword [esp]
mov dword [esp + 0x8c], eax
and dword [esp + 0x7c], 0
and dword [esp + 0x78], 0
and dword [esp + 0x74], 0
and dword [esp + 0x70], 0
mov dword [esp + 0x88], ecx
mov ecx, ebx
neg cl
mov byte [esp + 0xc], cl
and cl, 0x78
shr cl, 3
neg cl
movsx ecx, cl
mov ebp, dword [esp + ecx + 0x80]
or ebp, dword [esp + ecx + 0x88]
mov dword [esp + 4], edx
mov edx, dword [esp + ecx + 0x84]
mov dword [esp + 0x18], eax
mov eax, edx
or edx, dword [esp + ecx + 0x8c]
mov ch, byte [esp + 0xc]
shr eax, 1
and ch, 7
mov cl, ch
not cl
shr eax, cl
mov cl, ch
shld edx, ebp, cl
shl ebp, cl
or ebp, eax
xor eax, eax
or ebp, edx
mov edx, ebx
setne al
shr bl, 3
and dl, 7
mov dword [esp + 0x1c], eax
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], esi
and bl, 0xf
mov ecx, edx
mov eax, dword [esp]
movzx ebx, bl
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x18]
and dword [esp + 0xac], 0
and dword [esp + 0xa8], 0
and dword [esp + 0xa4], 0
and dword [esp + 0xa0], 0
mov dword [esp + 0x9c], eax
mov edi, dword [esp + ebx + 0x98]
mov esi, dword [esp + ebx + 0x9c]
mov eax, edi
add edi, edi
shrd eax, esi, cl
mov dword [esp], eax
mov ebp, dword [esp + ebx + 0x94]
mov eax, ebp
shr eax, cl
not cl
shl edi, cl
mov ecx, edx
mov edx, dword [esp + 4]
or edi, eax
shr esi, cl
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x14]
mov eax, dword [esp + ebx + 0x90]
shrd eax, ebp, cl
mov ebp, dword [esp + 0x28]
mov ecx, edi
or eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], eax
mov eax, esi
jmp 0x404443
mov dword [esp + 0xc], 0
mov dword [esp], 0
xor eax, eax
mov ebp, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x24]
mov esi, 0x80000
or edx, esi
shld edi, ebp, 3
shld ebp, ecx, 3
shl ecx, 3
cmp dword [esp + 8], 0
jmp 0x404466
js 0x4044a2
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0xc]
mov dword [esp + 4], edx
add ecx, ebx
adc esi, ebp
mov ebp, dword [esp]
adc ebp, edi
adc eax, dword [esp + 4]
jmp 0x404487
bt eax, 0x14
jb 0x404500
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov edx, ecx
mov edi, ebp
jmp 0x4046dd
mov esi, ecx
mov ebx, ebp
mov dword [esp + 0x18], eax
mov eax, edi
sub esi, dword [esp + 0x1c]
sbb ebx, dword [esp + 0xc]
mov dword [esp + 4], esi
mov esi, edx
mov edx, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp]
sbb eax, ebx
mov dword [esp + 0x24], eax
mov eax, esi
sbb eax, ecx
xor edx, dword [esp + 0x1c]
xor ebp, dword [esp + 0xc]
xor edi, ebx
xor esi, ecx
mov dword [esp + 8], eax
jmp 0x4044e7
or edi, edx
or esi, ebp
or esi, edi
jne 0x4045ad
xor esi, esi
xor edi, edi
xor ebx, ebx
xor edx, edx
jmp 0x4047f2
and ebx, 1
shrd ecx, esi, 1
jmp 0x40450a
mov edi, eax
shr eax, 1
or ecx, ebx
mov ebx, dword [esp + 0x20]
shld edi, ebp, 0x1f
shld ebp, esi, 0x1f
mov dword [esp + 8], eax
mov edx, ecx
mov esi, ebp
inc ebx
jmp 0x4046d9
mov dword [esp + 4], ecx
jmp 0x404536
mov ecx, dword [esp]
mov edx, esi
xor edx, 0x7fff0000
or edx, ebp
or ecx, eax
or edx, ecx
jne 0x40468b
mov esi, dword [esp + 0x108]
mov ecx, dword [esp + 0x118]
xor ebx, eax
xor edi, ebp
mov edx, dword [esp + 0x124]
jmp 0x40456a
xor ecx, esi
or ebx, ecx
mov esi, ebx
mov ebx, edi
mov edi, eax
mov eax, dword [esp + 0x114]
xor edx, eax
add edx, 0x80000000
or edx, ebx
xor ebx, ebx
xor ecx, ecx
inc ebx
or edx, esi
mov edx, 0x7fff8000
mov esi, ebx
cmove edi, ecx
cmove ebp, ecx
cmovne edx, eax
cmovne esi, dword [esp + 0x108]
mov ebx, edi
mov edi, ebp
jmp 0x4047f2
jmp 0x4045b4
cmp dword [esp + 8], 0x7ffff
mov ebx, dword [esp + 0x20]
ja 0x4046cd
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 8]
mov ebp, dword [esp + 4]
bsr ecx, eax
bsr esi, edi
xor ecx, 0x1f
xor esi, 0x1f
add ecx, 0x20
test edi, edi
cmovne ecx, esi
bsr esi, ebp
push 0x3f
pop edx
cmove esi, edx
mov edx, dword [esp + 0x14]
jmp 0x4045fb
mov dword [esp + 0x68], eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0x6c], edi
xor esi, 0x1f
add esi, 0x20
bsr ebx, edx
mov dword [esp + 0x64], edx
xor ebx, 0x1f
test edx, edx
cmove ebx, esi
mov esi, eax
add ebx, 0x40
or esi, edi
cmovne ebx, ecx
add ebx, 0xfffffff4
mov ecx, ebx
sub dword [esp + 0x20], ebx
mov ch, bl
and cl, 0x78
mov ebp, dword [esp + 0x20]
and dword [esp + 0x5c], 0
and dword [esp + 0x58], 0
and dword [esp + 0x54], 0
and dword [esp + 0x50], 0
and ch, 7
shr cl, 3
neg cl
movsx esi, cl
mov cl, ch
mov edi, dword [esp + esi + 0x68]
mov eax, dword [esp + esi + 0x6c]
shld eax, edi, cl
shl edi, cl
not cl
mov dword [esp + 8], eax
mov ebx, dword [esp + esi + 0x64]
mov edx, dword [esp + esi + 0x60]
mov eax, ebx
mov esi, ebx
mov ebx, ebp
shr eax, 1
shr eax, cl
mov cl, ch
or eax, edi
shld esi, edx, cl
shl edx, cl
mov edi, eax
jmp 0x4046d9
mov dword [esp + 0x10], ecx
jmp 0x404697
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
mov ecx, eax
xor edx, 0x7fff0000
or ecx, ebx
or edx, edi
or edx, ecx
jne 0x404817
mov eax, dword [esp + 0x104]
mov edx, dword [esp + 0x124]
mov esi, dword [esp + 0x118]
jmp 0x4047f9
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 4]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
and eax, 0x80000000
cmp ebx, 0x7ffe
jmp 0x4046f0
jle 0x404706
or eax, 0x7fff0000
xor esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x4046ff
mov edx, eax
jmp 0x4047f2
test ebx, ebx
mov dword [esp + 0x10], eax
jmp 0x404712
jle 0x40477e
mov ebp, dword [esp + 8]
xor ecx, ecx
shl ebx, 0x10
dec ecx
mov eax, ebp
shr ebp, 3
shld eax, edi, 0x1d
shld edi, esi, 0x1d
shld esi, edx, 0x1d
and edx, 7
and eax, ecx
and edi, ecx
and esi, ecx
mov ecx, 0xffff
and ebp, ecx
xor ecx, ecx
cmp edx, 5
setae cl
or ebx, ebp
mov ebp, edx
or ebx, dword [esp + 0x10]
add ecx, esi
jmp 0x404757
adc edi, 0
mov edx, ecx
adc eax, 0
adc ebx, 0
and edx, 1
xor esi, esi
cmp ebp, 4
cmove esi, edx
add esi, ecx
adc edi, 0
adc eax, 0
adc ebx, 0
mov edx, ebx
mov ebx, eax
jmp 0x4047f2
jmp 0x404782
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov cl, 4
mov eax, dword [esp + 8]
sub cl, bl
and dword [esp + 0x4c], 0
and dword [esp + 0x48], 0
and dword [esp + 0x44], 0
and dword [esp + 0x40], 0
mov ch, cl
and cl, 0x78
shr cl, 3
and ch, 7
movzx edx, cl
mov cl, ch
mov dword [esp + 0x3c], eax
mov eax, dword [esp + edx + 0x38]
mov esi, dword [esp + edx + 0x34]
mov ebx, dword [esp + edx + 0x3c]
mov ebp, eax
mov edi, esi
add eax, eax
shrd ebp, ebx, cl
shr edi, cl
not cl
shl eax, cl
mov cl, ch
or eax, edi
shr ebx, cl
mov edi, eax
mov eax, dword [esp + edx + 0x30]
or ebx, dword [esp + 0x10]
shrd eax, esi, cl
mov edx, ebx
mov ebx, ebp
mov esi, eax
mov eax, dword [esp + 0x104]
jmp 0x404801
mov dword [eax + 4], edi
mov dword [eax], esi
mov dword [eax + 8], ebx
mov dword [eax + 0xc], edx
add esp, 0xf0
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, ebp
jmp 0x404822
or edx, esi
or dword [esp + 0x10], edx
jne 0x404874
mov eax, dword [esp + 4]
mov edx, dword [esp + 0x124]
mov esi, dword [esp + 0x118]
jmp 0x404846
or eax, edi
or ecx, eax
mov eax, dword [esp + 0x104]
jne 0x4047f9
and esi, dword [esp + 0x108]
and ebx, dword [esp + 0x110]
and edx, dword [esp + 0x114]
and edi, ebp
jmp 0x404872
jmp 0x4047f9
mov esi, dword [esp + 4]
mov edx, edi
jmp 0x40487d
or edx, esi
or ecx, edx
mov ecx, esi
mov esi, edi
mov edi, 1
jne 0x403f3b
mov esi, dword [esp + 0x108]
mov ebx, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
jmp 0x4045a6