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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push esi
push edi
push ebx
sub esp, 0x234
mov eax, dword [0x52cfb4]
pxor xmm0, xmm0
xor eax, esp
mov dword [esp + 0x1f8], eax
movdqu xmmword [esp + 0x40], xmm0
movdqu xmmword [esp + 0x50], xmm0
movdqu xmmword [esp + 0x60], xmm0
movdqu xmmword [esp + 0x70], xmm0
movq qword [esp + 0x80], xmm0
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x88]
push eax
push ebx
mov dword [0x52e660], 0
call fcn.00412900
lea eax, [esp + 0x1b8]
push eax
push ebx
call fcn.004127c0
lea eax, [esp + 0x1a4]
push eax
push ebx
call fcn.004128b0
lea eax, [esp + 0x180]
push eax
push ebx
call fcn.00412cb0
add esp, 0x20
movdqu xmm3, xmmword [0x52e628]
movdqu xmm2, xmmword [0x52e638]
movdqu xmm4, xmmword [esp + 0x1b0]
movdqa xmm5, xmm4
movdqa xmm6, xmm4
pmuludq xmm5, xmm3
psrlq xmm6, 0x20
psrlq xmm3, 0x20
pmuludq xmm6, xmm3
movdqu xmm1, xmmword [0x4b4220]
psllq xmm6, 0x20
pand xmm5, xmm1
por xmm5, xmm6
cvtdq2pd xmm6, xmm5
punpckhqdq xmm5, xmm5
movdqu xmm3, xmmword [esp + 0x1c0]
cvtdq2pd xmm7, xmm5
movdqa xmm0, xmm3
movdqa xmm5, xmm3
pmuludq xmm0, xmm2
psrlq xmm5, 0x20
psrlq xmm2, 0x20
pand xmm0, xmm1
pmuludq xmm5, xmm2
psllq xmm5, 0x20
por xmm0, xmm5
cvtdq2pd xmm2, xmm0
punpckhqdq xmm0, xmm0
cvtdq2pd xmm0, xmm0
addpd xmm2, xmm6
movdqu xmm6, xmmword [0x52e648]
addpd xmm0, xmm7
movdqu xmm7, xmmword [esp + 0x1d0]
movdqa xmm5, xmm7
psrlq xmm7, 0x20
pmuludq xmm5, xmm6
psrlq xmm6, 0x20
pmuludq xmm7, xmm6
pand xmm5, xmm1
psllq xmm7, 0x20
por xmm5, xmm7
cvtdq2pd xmm1, xmm5
punpckhqdq xmm5, xmm5
cvtdq2pd xmm6, xmm5
addpd xmm1, xmm2
addpd xmm6, xmm0
addpd xmm1, xmm6
mov dword [esp + 0x18], ebx
pxor xmm0, xmm0
mov ebx, dword [esp + 0x1e0]
movaps xmm6, xmm1
mov ecx, dword [0x52e658]
pxor xmm5, xmm5
imul ecx, ebx
movdqa xmm7, xmm5
unpckhpd xmm6, xmm1
pxor xmm7, xmm4
movdqa xmm2, xmm3
addsd xmm1, xmm6
cvtsi2sd xmm0, ecx
mov eax, dword [0x52e65c]
pxor xmm6, xmm6
mov esi, dword [esp + 0x1e4]
addsd xmm1, xmm0
imul eax, esi
movdqa xmm0, xmm4
pcmpeqd xmm4, xmm5
cvtsi2sd xmm6, eax
pcmpgtd xmm0, xmm5
xor eax, eax
pand xmm0, xmm7
cmp eax, ebx
pxor xmm0, xmm5
addsd xmm1, xmm6
movdqa xmm6, xmm3
pcmpgtd xmm2, xmm0
pxor xmm6, xmm0
pcmpeqd xmm3, xmm5
movdqu xmm7, xmmword [esp + 0x1d0]
pand xmm2, xmm6
pxor xmm2, xmm0
movdqa xmm6, xmm7
movdqa xmm0, xmm7
pcmpgtd xmm6, xmm2
pxor xmm0, xmm2
pcmpeqd xmm7, xmm5
pand xmm6, xmm0
pxor xmm6, xmm2
pcmpeqd xmm2, xmm2
pxor xmm4, xmm2
pxor xmm3, xmm2
psubd xmm5, xmm4
pxor xmm7, xmm2
psubd xmm5, xmm3
movdqa xmm2, xmm6
psubd xmm5, xmm7
movdqa xmm3, xmm6
movdqa xmm4, xmm5
psrldq xmm4, 8
psrldq xmm2, 8
paddd xmm5, xmm4
movdqa xmm0, xmm5
pcmpgtd xmm3, xmm2
pxor xmm6, xmm2
psrlq xmm0, 0x20
pand xmm3, xmm6
paddd xmm5, xmm0
pxor xmm3, xmm2
mov edi, dword [esp + 0x1b0]
movdqa xmm6, xmm3
movd ecx, xmm5
movdqa xmm5, xmm3
psrldq xmm5, 4
pcmpgtd xmm6, xmm5
pxor xmm3, xmm5
pand xmm6, xmm3
adc ecx, 0
add edi, dword [esp + 0x1b4]
pxor xmm6, xmm5
add edi, dword [esp + 0x1b8]
add edi, dword [esp + 0x1bc]
add edi, dword [esp + 0x1c0]
add edi, dword [esp + 0x1c4]
movd edx, xmm6
movsd qword [esp + 0x10], xmm1
add edi, dword [esp + 0x1c8]
cmp ebx, edx
cmovge edx, ebx
add edi, dword [esp + 0x1cc]
cmp esi, edx
cmovge edx, esi
cmp eax, esi
mov dword [esp + 0x38], edx
adc ecx, 0
add edi, dword [esp + 0x1d0]
add edi, dword [esp + 0x1d4]
add edi, dword [esp + 0x1d8]
add edi, dword [esp + 0x1dc]
add edi, ebx
add edi, esi
xor esi, esi
mov eax, 0x55e63b89
mul edi
shr edx, 0x19
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], edi
mov edi, esi
mov edx, dword [esp + edi*4 + 0x1b0]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4014d1
cmp dword [esp + 0x20], 1
jle 0x4014d1
mov edx, dword [esp + 0x28]
mov ecx, 9
cmp edx, 0x5f5e100
mov ebx, dword [esp + esi + 0x88]
cmovae edx, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
mov ebx, 1
cmovae ebx, ecx
cmp edx, 0x2710
jb 0x40137d
mov eax, 0xd1b71759
add ebx, 4
mul edx
shr edx, 0xd
cmp edx, 0x64
jb 0x40138f
mov eax, 0x51eb851f
add ebx, 2
mul edx
shr edx, 5
inc ebx
cmp edx, 0xa
sbb ebx, 0
cmp dword [esp + 0x38], 0
je 0x4013d8
mov dword [esp + 0x1c], ebx
lea ecx, [ebx + 8]
mov ebx, dword [0x541138]
sub ebx, ecx
mov edx, dword [esp + 0x3c]
imul edx, ebx
imul ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
lea eax, [ecx + edx - 1]
cdq
idiv ecx
mov dword [esp + 0x30], eax
lea eax, [ecx + ebx - 1]
cdq
idiv ecx
mov dword [esp + 0x34], eax
mov ebx, dword [esp + 0x1c]
jmp 0x4013e2
xor edx, edx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x28]
mov ecx, 1
mov eax, 9
cmp edx, 0x5f5e100
cmovae edx, dword [esp + 0x24]
cmovae ecx, eax
cmp edx, 0x2710
jb 0x401413
mov eax, 0xd1b71759
add ecx, 4
mul edx
shr edx, 0xd
cmp edx, 0x64
jb 0x401425
mov eax, 0x51eb851f
add ecx, 2
mul edx
shr edx, 5
inc ecx
cmp edx, 0xa
lea eax, [esp + 0x1e8]
push dword [esp + 0x3c]
sbb ecx, 0
push ecx
push str.___i_
push eax
call fcn.00401d60
add esp, 0x10
mov ecx, dword [esp + 0x30]
sub ecx, dword [esp + 0x34]
cmp byte [0x54114a], 0
je 0x401489
push 0x54114a
push 0x52e664
push ecx
push 0x52e865
push dword [esp + 0x44]
lea edx, [esp + 0x1fc]
push edx
push dword [edi*4 + 0x52e628]
push 0x4b42e8
call fcn.00402270
add esp, 0x20
jmp 0x4014c9
add ebx, 8
mov edx, dword [0x541138]
push 0x4b4310
sub edx, ebx
sub edx, dword [esp + 0x34]
push edx
push 0x52e664
push ecx
push 0x52e865
push dword [esp + 0x48]
lea ecx, [esp + 0x200]
push ecx
push dword [edi*4 + 0x52e628]
push str._n_3d_s__.s_.s_s
call fcn.00402270
add esp, 0x24
inc dword [0x52e660]
jmp 0x4014e5
cmp edi, dword [0x52e620]
jl 0x4014e5
cmp edi, dword [0x52e624]
jle 0x401341
inc edi
add esi, 0x10
cmp edi, 0xe
jl 0x401323
mov ecx, dword [esp + 0x194]
mov edx, dword [esp + 0x198]
add edx, ecx
mov esi, dword [esp + 0x19c]
add edx, esi
mov edi, dword [esp + 0x28]
add edx, dword [esp + 0x1a0]
movsd xmm1, qword [esp + 0x10]
mov ebx, dword [esp + 0x18]
test edi, edi
jle 0x401554
pxor xmm0, xmm0
mov eax, edi
cvtsi2sd xmm0, edi
divsd xmm1, xmm0
movsd qword [esp + 0x40], xmm1
pxor xmm1, xmm1
sub eax, edx
cvtsi2sd xmm1, eax
mulsd xmm1, qword [0x4b4260]
divsd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
test edx, edx
jle 0x40159e
pxor xmm1, xmm1
pxor xmm2, xmm2
cvtsi2sd xmm1, ecx
cvtsi2sd xmm2, esi
pxor xmm3, xmm3
pxor xmm0, xmm0
cvtsi2sd xmm3, edx
movsd xmm4, qword [0x4b4260]
mulsd xmm1, xmm4
mulsd xmm4, xmm2
divsd xmm1, xmm3
divsd xmm4, xmm3
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x58], xmm1
movsd qword [esp + 0x60], xmm4
mov eax, dword [esp + 0x17c]
test eax, eax
jle 0x401635
pxor xmm5, xmm5
pxor xmm0, xmm0
cvtsi2sd xmm5, eax
cvtsi2sd xmm0, dword [esp + 0x168]
mov eax, dword [esp + 0x16c]
pxor xmm1, xmm1
add eax, dword [esp + 0x174]
pxor xmm2, xmm2
pxor xmm4, xmm4
cvtsi2sd xmm2, dword [esp + 0x170]
cvtsi2sd xmm4, dword [esp + 0x178]
cvtsi2sd xmm1, eax
movsd xmm3, qword [0x4b4260]
mulsd xmm0, xmm3
mulsd xmm1, xmm3
mulsd xmm2, xmm3
divsd xmm0, xmm5
mulsd xmm3, xmm4
divsd xmm1, xmm5
divsd xmm2, xmm5
divsd xmm3, xmm5
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0x78], xmm2
movsd qword [esp + 0x80], xmm3
push ebx
call fcn.00416750
mov esi, eax
movups xmm0, xmmword [0x4b4200]
mov eax, dword [0x4b4210]
movups xmmword [esp + 0x184], xmm0
mov dword [esp + 0x194], eax
push ebx
call fcn.00416600
mov dword [esp + 0x18], eax
push ebx
call fcn.00415820
mov edx, eax
add esp, 0xc
cmp edi, esi
cmovge esi, edi
test edx, edx
jle 0x40169e
mov eax, esi
pxor xmm1, xmm1
sub eax, edi
pxor xmm0, xmm0
cvtsi2ss xmm1, dword [esp + 0x10]
cvtsi2ss xmm0, eax
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
mulss xmm1, xmm0
divss xmm1, xmm2
jmp 0x4016a2
pxor xmm1, xmm1
movaps xmm4, xmm1
divss xmm4, dword [0x4b4270]
movss xmm0, dword [0x4b4278]
movaps xmm2, xmm4
movaps xmm3, xmm0
cmpnltss xmm2, xmm0
cmpless xmm3, xmm4
movd eax, xmm2
andps xmm3, xmm0
pxor xmm2, xmm2
subss xmm4, xmm3
cvttss2si ebx, xmm4
and eax, 0x80000000
add ebx, eax
imul eax, ebx, 0xe10
cvtsi2ss xmm2, eax
test eax, eax
jge 0x4016fb
shr eax, 1
pxor xmm2, xmm2
cvtsi2ss xmm2, eax
addss xmm2, xmm2
movaps xmm3, xmm0
subss xmm1, xmm2
movaps xmm4, xmm1
divss xmm4, dword [0x4b4274]
movaps xmm2, xmm4
cmpless xmm3, xmm4
cmpnltss xmm2, xmm0
andps xmm3, xmm0
movd eax, xmm2
pxor xmm2, xmm2
subss xmm4, xmm3
cvttss2si edx, xmm4
and eax, 0x80000000
add edx, eax
mov dword [esp + 0x14], edx
lea ecx, [edx*4]
shl edx, 6
sub edx, ecx
cvtsi2ss xmm2, edx
jns 0x401758
shr edx, 1
pxor xmm2, xmm2
cvtsi2ss xmm2, edx
addss xmm2, xmm2
movaps xmm3, xmm0
subss xmm1, xmm2
movaps xmm2, xmm1
cmpless xmm3, xmm1
cmpnltss xmm2, xmm0
andps xmm3, xmm0
movd eax, xmm2
subss xmm1, xmm3
cvttss2si edx, xmm1
and eax, 0x80000000
add edx, eax
mov dword [esp + 0x10], edx
test esi, esi
je 0x4018da
test ebx, ebx
je 0x40185a
mov edx, ebx
cmp ebx, 0x5f5e100
jb 0x4017b1
mov eax, 0x55e63b89
mov ecx, 9
mul ebx
shr edx, 0x19
jmp 0x4017b6
mov ecx, 1
cmp edx, 0x2710
jb 0x4017cb
mov eax, 0xd1b71759
add ecx, 4
mul edx
shr edx, 0xd
cmp edx, 0x64
jb 0x4017dd
mov eax, 0x51eb851f
add ecx, 2
mul edx
shr edx, 5
inc ecx
lea eax, [esp + 0x180]
push dword [esp + 0x10]
cmp edx, 0xa
push dword [esp + 0x18]
push ebx
sbb ecx, 0
push ecx
push str._u:_02u:_02u
push eax
call fcn.00401d60
add esp, 0x18
cmp ebx, 0x5f5e100
jb 0x40181e
mov eax, 0x55e63b89
mov ecx, 9
mul ebx
mov ebx, edx
shr ebx, 0x19
jmp 0x401823
mov ecx, 1
cmp ebx, 0x2710
jb 0x40183a
mov eax, 0xd1b71759
add ecx, 4
mul ebx
mov ebx, edx
shr ebx, 0xd
cmp ebx, 0x64
jb 0x40184e
mov eax, 0x51eb851f
add ecx, 2
mul ebx
mov ebx, edx
shr ebx, 5
inc ecx
cmp ebx, 0xa
sbb ecx, 0
add ecx, 7
jmp 0x40187c
lea eax, [esp + 0x180]
push dword [esp + 0x10]
push dword [esp + 0x18]
push str._02u:_02u
push eax
call fcn.00401d60
add esp, 0x10
mov ecx, 6
mov ebx, dword [0x541138]
mov eax, esi
sub ebx, ecx
imul eax, ebx
mov dword [esp + 0x10], ebx
lea eax, [esi + eax - 1]
cdq
imul edi, dword [esp + 0x10]
idiv esi
mov ebx, eax
lea eax, [esi + edi - 1]
cdq
idiv esi
mov esi, eax
mov eax, ebx
sub eax, esi
jne 0x4018e5
push 0x52ea66
lea edx, [ecx - 1]
push edx
push str._.s
lea edi, [esp + 0x18c]
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
call fcn.00401d60
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
add esp, 0x10
jmp 0x4018e5
xor eax, eax
mov ecx, 1
xor esi, esi
xor ebx, ebx
cmp byte [0x54114a], 0
je 0x401916
push 0x54114a
push 0x52ec67
push eax
lea eax, [esp + 0x18c]
push eax
push 0x52ea66
push esi
push 0x4b4338
call fcn.00402270
add esp, 0x1c
jmp 0x401947
mov edx, dword [0x541138]
sub edx, ecx
push 0x4b4310
sub edx, ebx
push edx
push 0x52ec67
push eax
lea eax, [esp + 0x190]
push eax
push 0x52ea66
push esi
push str._n_.s_s_.s_s
call fcn.00402270
add esp, 0x20
push str._n___kbps
inc dword [0x52e660]
call fcn.00402270
add esp, 4
movsd xmm0, qword [esp + 0x48]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x40197e
push str.__mono
call fcn.00402270
add esp, 4
mov edi, 6
jmp 0x401980
xor edi, edi
movsd xmm0, qword [esp + 0x50]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x4019a7
push str.___IS
call fcn.00402270
add esp, 4
mov dword [esp + 0x10], 6
jmp 0x4019af
mov dword [esp + 0x10], 0
movsd xmm0, qword [esp + 0x58]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x4019d6
push str.___LR
call fcn.00402270
add esp, 4
mov dword [esp + 0x1c], 6
jmp 0x4019de
mov dword [esp + 0x1c], 0
movsd xmm0, qword [esp + 0x60]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x401a05
push str.___MS
call fcn.00402270
add esp, 4
mov dword [esp + 0x14], 6
jmp 0x401a0d
mov dword [esp + 0x14], 0
push 0x4b4390
call fcn.00402270
add esp, 4
movsd xmm0, qword [esp + 0x68]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x401a41
push str._long
call fcn.00402270
add esp, 4
mov dword [esp + 0x20], 6
jmp 0x401a49
mov dword [esp + 0x20], 0
movsd xmm0, qword [esp + 0x70]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x401a6d
push str.switch
call fcn.00402270
add esp, 4
mov esi, 6
jmp 0x401a6f
xor esi, esi
movsd xmm0, qword [esp + 0x78]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x401a96
push str._short
call fcn.00402270
add esp, 4
mov dword [esp + 0x18], 6
jmp 0x401a9e
mov dword [esp + 0x18], 0
movsd xmm0, qword [esp + 0x80]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x401ac5
push str._mixed
call fcn.00402270
add esp, 4
mov ebx, 6
jmp 0x401ac7
xor ebx, ebx
push 0x4b43b8
call fcn.00402270
add esp, 4
cmp byte [0x54114a], 0
je 0x401af1
push 0x54114a
push 0x4b43bc
call fcn.00402270
add esp, 8
jmp 0x401b28
push 0x4b4310
add edi, dword [esp + 0x14]
add ebx, eax
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x18]
add edi, dword [esp + 0x24]
add edi, esi
add edi, dword [esp + 0x1c]
mov edx, dword [0x541138]
lea eax, [edi + ebx + 0x13]
sub edx, eax
push edx
push 0x4b43c0
call fcn.00402270
add esp, 0xc
movsd xmm0, qword [esp + 0x40]
mov dword [esp], str._n___5.1f
inc dword [0x52e660]
movsd qword [esp + 4], xmm0
call fcn.00402270
movsd xmm1, qword [esp + 0x48]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401b6f
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov edi, 6
jmp 0x401b71
xor edi, edi
movsd xmm1, qword [esp + 0x50]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401b9a
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov esi, 6
jmp 0x401b9c
xor esi, esi
movsd xmm1, qword [esp + 0x58]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401bc8
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov dword [esp + 0x18], 6
jmp 0x401bd0
mov dword [esp + 0x18], 0
movsd xmm1, qword [esp + 0x60]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401bfc
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov dword [esp + 0x14], 6
jmp 0x401c04
mov dword [esp + 0x14], 0
push 0x4b43d4
call fcn.00402270
add esp, 4
movsd xmm1, qword [esp + 0x68]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401c3a
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov ebx, 6
jmp 0x401c3c
xor ebx, ebx
movsd xmm1, qword [esp + 0x70]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401c68
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov dword [esp + 0x1c], 6
jmp 0x401c70
mov dword [esp + 0x1c], 0
movsd xmm1, qword [esp + 0x78]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401c99
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
call fcn.00402270
mov eax, 6
jmp 0x401c9b
xor eax, eax
movsd xmm1, qword [esp + 0x80]
pxor xmm0, xmm0
comisd xmm1, xmm0
jbe 0x401ccf
mov dword [esp], str.__5.1f
movsd qword [esp + 4], xmm1
mov dword [esp + 0x10], eax
call fcn.00402270
mov eax, dword [esp + 0x10]
mov edx, 6
jmp 0x401cd1
xor edx, edx
cmp byte [0x54114a], 0
je 0x401cee
push 0x54114a
push 0x4b43bc
call fcn.00402270
add esp, 8
jmp 0x401d1f
push 0x4b4310
add edi, esi
add edi, dword [esp + 0x1c]
add edi, dword [esp + 0x18]
add edi, ebx
add edi, dword [esp + 0x20]
add edi, eax
lea eax, [edi + edx + 0x13]
mov edx, dword [0x541138]
sub edx, eax
push edx
push 0x4b43c0
call fcn.00402270
add esp, 0xc
inc dword [0x52e660]
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x1f8], 0
xor ecx, esp
cmp ecx, dword [0x52cfb4]
jne 0x401d4e
add esp, 0x234
pop ebx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
call fcn.00497ce0
nop dword [eax + eax]
nop dword [eax + eax]