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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xd0
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 8]
mov edi, ecx
call 0x43165c
pop ecx
mov dword [esp + 0xb0], edx
test esi, esi
mov dword [esp + 0xb4], ebx
je 0x4316b2
mov ebx, dword [ebp + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 0x14], edi
movzx edx, byte [ebx]
add edx, 0xffffff9e
cmp edx, 0x12
ja 0x431993
add ecx, dword [edx*4 + 0x431fa8]
mov edi, 0x58b1f4
xor eax, eax
mov edx, 4
jmp ecx
mov eax, edx
or eax, ebx
je 0x43174d
test ebx, 0xffffff00
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], 0x58b1f4
mov dword [esp + 8], edx
jne 0x4317ae
mov esi, 0x3fffffff
xor edi, edi
lea eax, [0x58b1f8]
mov ecx, 0x40000000
cmp esi, edx
mov edx, 0
mov dword [esp + 0xc], eax
sbb edx, ebx
mov edx, ebx
jb 0x4317b7
lea eax, [0x58b1fc]
xor edi, edi
mov ecx, 0x100000
mov dword [esp + 0xc], eax
mov eax, 0xfffff
cmp eax, dword [esp + 8]
mov eax, 0
sbb eax, edx
jb 0x4317b7
lea eax, [0x58b200]
xor edi, edi
mov ecx, 0x400
mov dword [esp + 0xc], eax
mov eax, 0x3ff
cmp eax, dword [esp + 8]
mov eax, 0
sbb eax, edx
jb 0x4317b7
mov edi, dword [esp + 0x14]
lea ecx, [esp + 0x28]
lea eax, [esp + 0xb0]
mov dword [esp + 0x70], 0x58b3bc
mov dword [esp + 0x74], 2
mov dword [esp + 0x80], 0
lea edx, [esp + 0x70]
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], fcn.004b4d80
mov dword [esp + 0x7c], 1
call fcn.00463830
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [edi + 8], eax
movsd qword [edi], xmm0
jmp 0x431c3a
mov edi, 0x100
xor ecx, ecx
mov edx, ebx
mov dword [esp + 4], ecx
push edi
push ecx
push edx
mov ebx, dword [esp + 0x14]
push ebx
mov esi, edx
call fcn.0057a310
cmp eax, 0xa
mov ecx, edx
sbb ecx, 0
jae 0x431966
movd xmm1, esi
movd xmm0, ebx
shr esi, 0x1f
movd xmm2, edi
shr edi, 0x1f
lea ecx, [esp + 0x50]
lea edx, [esp + 0x38]
punpckldq xmm0, xmm1
movq qword [esp + 0xc0], xmm0
fild qword [esp + 0xc0]
fnstcw word [esp + 0x1e]
movzx eax, word [esp + 0x1e]
or eax, 0x300
mov word [esp + 0x26], ax
fldcw word [esp + 0x26]
fadd dword [esi*4 + 0x5893c8]
fldcw word [esp + 0x1e]
fstp dword [esp + 0x6c]
movd xmm1, dword [esp + 4]
movss xmm0, dword [esp + 0x6c]
punpckldq xmm1, xmm2
movq qword [esp + 0xb8], xmm1
fild qword [esp + 0xb8]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
or eax, 0x300
mov word [esp + 0x24], ax
lea eax, [esp + 0x20]
fldcw word [esp + 0x24]
fadd dword [edi*4 + 0x5893c8]
fldcw word [esp + 0x1c]
fstp dword [esp + 0x68]
divss xmm0, dword [esp + 0x68]
mov dword [esp + 0x28], eax
lea eax, [esp + 0xc]
mov dword [esp + 0x2c], 0x4b6b60
mov dword [esp + 0x38], 0x58b3cc
mov dword [esp + 0x3c], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], 2
mov dword [esp + 0x80], 0x20
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov byte [esp + 0x8c], 3
mov dword [esp + 0x90], 2
mov dword [esp + 0x98], 2
mov dword [esp + 0xa0], 0x20
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov byte [esp + 0xac], 3
mov dword [esp + 0x30], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x34], 0x40c440
mov dword [esp + 0x48], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x4c], 2
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 2
movss dword [esp + 0x20], xmm0
call fcn.00463830
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x50]
jmp 0x431c33
mov dword [esp + 0x54], edx
lea edx, [esp + 0x50]
lea ecx, [esp + 0xc]
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], fcn.004b4d80
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], 0x40c440
jmp 0x431bed
cmp esi, 7
mov dword [esp + 0xc], 0x58b1f4
ja 0x431c42
mov eax, ebx
mov ecx, esi
xor edi, edi
nop word [eax + eax]
cmp byte [eax], 0x69
je 0x431cef
inc eax
dec ecx
jne 0x4319b0
mov eax, 0x400
jmp 0x431cf4
lea eax, [esp + 0x38]
lea ecx, [esp + 0x28]
lea edx, [esp + 0x70]
mov dword [esp + 0x70], 0x58b3cc
mov dword [esp + 0x74], 2
mov dword [esp + 0x80], 0
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], 2
call fcn.00463830
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x28]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea edi, [ebx + 3]
and edi, 0xfffffffc
mov eax, edi
mov dword [esp + 0x10], edi
sub eax, ebx
je 0x431c7c
cmp eax, esi
mov edx, esi
cmovb edx, eax
test edx, edx
je 0x431c7c
xor ecx, ecx
nop
cmp byte [ebx + ecx], 0x69
je 0x431d47
inc ecx
cmp edx, ecx
jne 0x431c60
lea ecx, [esi - 8]
cmp edx, ecx
mov dword [esp + 4], ecx
jbe 0x431c85
jmp 0x431cd3
lea ecx, [esi - 8]
xor edx, edx
mov dword [esp + 4], ecx
movdqa xmm0, xmmword [str.iiiiiiii]
movdqa xmm1, xmmword [0x589370]
movdqa xmm2, xmmword [0x589380]
nop dword [eax]
movq xmm3, qword [ebx + edx]
movdqa xmm4, xmm3
pxor xmm4, xmm0
paddd xmm4, xmm1
pandn xmm3, xmm4
pand xmm3, xmm2
movd ecx, xmm3
pshufd xmm3, xmm3, 0x55
movd edi, xmm3
or edi, ecx
jne 0x431cd3
add edx, 8
cmp edx, dword [esp + 4]
jbe 0x431ca0
mov edi, esi
xor ecx, ecx
sub edi, edx
je 0x431d4c
add edx, ebx
xor ecx, ecx
nop
cmp byte [edx + ecx], 0x69
je 0x431d47
inc ecx
cmp edi, ecx
jne 0x431ce0
xor ecx, ecx
jmp 0x431d4c
mov eax, 0x3e8
imul edi, eax
mul eax
mov ecx, edx
add ecx, edi
add ecx, edi
imul ecx, eax
mul eax
mov edi, edx
mov edx, dword [ebp + 8]
add edi, ecx
add edi, ecx
cmp dword [esp + 8], eax
mov ecx, eax
mov eax, edx
sbb eax, edi
jae 0x4317b7
lea eax, [0x58b1f8]
mov edx, esi
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, ebx
nop dword [eax]
cmp byte [eax], 0x69
je 0x431e24
inc eax
dec edx
jne 0x431d30
mov eax, 0x400
jmp 0x431e29
mov ecx, 1
test ecx, ecx
mov edx, pe_nt_image_headers32
mov edi, 0x100
cmovne edi, edx
mov edx, 0xd4a51000
cmove edx, ecx
mov dword [esp + 4], edx
cmp dword [esp + 8], edx
mov edx, dword [ebp + 8]
mov ecx, edx
sbb ecx, edi
mov ecx, dword [esp + 4]
jae 0x4317b7
cmp dword [esp + 0x10], ebx
lea ecx, [0x58b1f8]
mov dword [esp + 0xc], ecx
je 0x431daf
cmp eax, esi
cmovae eax, esi
test eax, eax
je 0x431daf
xor ecx, ecx
cmp byte [ebx + ecx], 0x69
je 0x431e97
inc ecx
cmp eax, ecx
jne 0x431d97
lea ecx, [esi - 8]
cmp eax, ecx
jbe 0x431db4
jmp 0x431e01
lea ecx, [esi - 8]
xor eax, eax
movdqa xmm0, xmmword [str.iiiiiiii]
movdqa xmm1, xmmword [0x589370]
movdqa xmm2, xmmword [0x589380]
nop dword [eax]
movq xmm3, qword [ebx + eax]
movdqa xmm4, xmm3
pxor xmm4, xmm0
paddd xmm4, xmm1
pandn xmm3, xmm4
pand xmm3, xmm2
movd edx, xmm3
pshufd xmm3, xmm3, 0x55
movd edi, xmm3
or edi, edx
jne 0x431e01
add eax, 8
cmp eax, ecx
jbe 0x431dd0
mov ecx, esi
xor edx, edx
sub ecx, eax
je 0x431e9c
add eax, ebx
xor edx, edx
cmp byte [eax + edx], 0x69
je 0x431e97
inc edx
cmp ecx, edx
jne 0x431e11
xor edx, edx
jmp 0x431e9c
mov eax, 0x3e8
mov edx, eax
mov dword [esp + 4], eax
imul edx, ecx
mov dword [esp + 0x10], edx
mul eax
mov edi, edx
mov edx, dword [esp + 0x10]
imul ecx, eax
add edi, edx
add edi, edx
mul dword [esp + 4]
imul edi, dword [esp + 4]
add edx, ecx
mov ecx, eax
add edi, edx
mov edx, dword [ebp + 8]
cmp dword [esp + 8], eax
mov eax, edx
sbb eax, edi
jae 0x4317b7
lea eax, [0x58b1fc]
mov edx, esi
xor ecx, ecx
mov dword [esp + 0xc], eax
mov eax, ebx
nop word cs:[eax + eax]
nop
cmp byte [eax], 0x69
je 0x431f3c
inc eax
dec edx
jne 0x431e80
mov eax, 0x400
jmp 0x431f41
mov edx, 1
test edx, edx
mov eax, 0x3b9aca00
mov ecx, 0x40000000
cmovne ecx, eax
xor edi, edi
mov eax, dword [ebp + 8]
cmp dword [esp + 8], ecx
mov edx, eax
sbb eax, 0
jae 0x4317b7
lea eax, [0x58b1fc]
mov ecx, 0x69
mov edx, ebx
mov dword [esp + 0xc], eax
push esi
call fcn.004b4520
mov edx, dword [ebp + 8]
add esp, 4
cmp eax, 1
mov eax, 0xf4240
mov ecx, 0x100000
cmove ecx, eax
mov eax, edx
cmp dword [esp + 8], ecx
sbb eax, 0
jae 0x4317b7
lea eax, [0x58b200]
mov ecx, 0x69
mov edx, ebx
mov dword [esp + 0xc], eax
push esi
call fcn.004b4520
mov edx, dword [ebp + 8]
add esp, 4
cmp eax, 1
mov eax, 0x3e8
mov ecx, 0x400
cmove ecx, eax
mov eax, edx
cmp dword [esp + 8], ecx
sbb eax, 0
jb 0x431749
jmp 0x4317b7
mov eax, 0x3e8
imul ecx, eax
mul eax
mov edi, edx
mov edx, dword [ebp + 8]
add edi, ecx
add edi, ecx
cmp dword [esp + 8], eax
mov ecx, eax
mov eax, edx
sbb eax, edi
jae 0x4317b7
lea eax, [0x58b200]
xor edi, edi
mov dword [esp + 0xc], eax
cmp byte [ebx], 0x69
je 0x431f7b
inc ebx
dec esi
jne 0x431f6b
mov ecx, 0x400
jmp 0x431f80
mov ecx, 0x3e8
cmp dword [esp + 8], ecx
mov eax, edx
sbb eax, edi
jb 0x431749
jmp 0x4317b7