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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
inc dword [0x10275f40]
mov eax, edx
mov dword [esp + 0x34], eax
xorps xmm0, xmm0
push esi
mov esi, dword [0x10275fb4]
push edi
movss xmm2, dword [esi + 0x1a40]
test eax, eax
je 0x10166036
movss xmm3, dword [0x10225220]
push 0
push 0
push eax
push ecx
mov ecx, dword [esi + 0x1a3c]
lea eax, [esp + 0x44]
mov dword [esp], 0xbf800000
push eax
call fcn.10143420
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x10224fa4]
movss xmm2, dword [esp + 0x38]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x48], xmm0
addss xmm2, dword [0x10224e90]
addss xmm0, dword [0x10225070]
movss xmm3, dword [0x10225220]
lea eax, ds:[esp + 0x48]
push 0
push 0
push str.ICON
push ecx
mov ecx, dword [esi + 0x1a3c]
movss dword [esp + 0x44], xmm2
movss xmm2, dword [esi + 0x1a40]
mov dword [esp], 0xbf800000
push eax
movss dword [esp + 0x34], xmm0
call fcn.10143420
movss xmm0, dword ds:[esp + 0x48]
mov edx, 1
addss xmm0, dword [0x10224fa4]
push str.Foreground
cvttss2si eax, xmm0
movd xmm0, eax
mov eax, dword [esi + 0x1e0c]
cvtdq2ps xmm0, xmm0
mov ecx, dword [eax]
addss xmm0, dword [0x10225070]
movss dword [esp + 0x20], xmm0
call fcn.10124580
add esp, 4
mov dword [esp + 0x28], eax
call fcn.10071505
mov ecx, dword fs:[0x2c]
mov esi, dword [0x10274ac0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
mov esi, dword [ecx + esi*4]
mov ecx, dword [0x10280fe0]
cmp ecx, dword [esi + 4]
jg 0x1016680e
push 0x10275f40
lea eax, [esp + 0x4c]
push eax
call fcn.1004d680
mov esi, dword [esp + 0x50]
mov edi, dword [0x102810a8]
mov eax, dword [0x10275f40]
cmp byte [esi + 0xd], 0
jne 0x10166125
nop
cmp eax, dword [esi + 0x10]
jge 0x10166127
mov esi, edi
movss xmm2, dword [esp + 0x20]
movss xmm0, dword [0x102250a4]
movss xmm3, dword [0x10225084]
addss xmm2, dword [0x10225094]
addss xmm2, dword [esp + 0x1c]
movss dword [esp + 0x24], xmm2
cmp esi, edi
jne 0x1016624b
mov ecx, dword [esp + 0x14]
dec eax
add ecx, 0x2625a00
push 0x10275f40
mov dword [esp + 0x6c], ecx
movd xmm1, eax
mov eax, dword [esp + 0x1c]
cvtdq2ps xmm1, xmm1
adc eax, 0
mov dword [esp + 0x70], eax
lea eax, [esp + 0x58]
push eax
mulss xmm1, xmm0
movaps xmm0, xmm2
addss xmm0, dword [0x10225070]
addss xmm1, xmm3
movss dword [esp + 0x68], xmm0
movss dword [esp + 0x6c], xmm1
call fcn.1004d680
mov ecx, dword [eax + 8]
movq xmm0, qword [eax]
movq qword [esp + 0x48], xmm0
cmp byte [ecx + 0xd], 0
jne 0x101661c5
mov eax, dword [0x10275f40]
cmp eax, dword [ecx + 0x10]
jge 0x10166226
cmp dword [0x102810ac], 0x6666666
je 0x10166865
push 0x28
call fcn.10088cd4
mov ecx, dword [0x10275f40]
add esp, 4
movups xmm0, xmmword [esp + 0x60]
mov dword [eax + 0x10], ecx
mov ecx, 0x102810a8
push eax
push dword [esp + 0x50]
movups xmmword [eax + 0x18], xmm0
mov dword [eax], edi
push dword [esp + 0x50]
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov word [eax + 0xc], 0
call fcn.1004de00
mov edi, dword [0x102810a8]
movss xmm2, dword [esp + 0x24]
movss xmm3, dword [0x10225084]
push 0x10275f40
lea eax, [esp + 0x4c]
push eax
call fcn.1004d680
mov esi, dword [esp + 0x50]
cmp byte [esi + 0xd], 0
jne 0x10166249
mov eax, dword [0x10275f40]
cmp eax, dword [esi + 0x10]
jge 0x1016624b
mov esi, edi
mov edx, dword [esp + 0x14]
mov edi, dword [0x10275fb4]
mov ecx, dword [esi + 0x24]
movss xmm4, dword [0x10224fac]
mov eax, dword [esp + 0x18]
cmp edx, dword [esi + 0x20]
jne 0x101667a1
cmp eax, ecx
jne 0x101667a3
movss xmm1, dword [esi + 0x18]
movaps xmm0, xmm2
addss xmm0, dword [0x1022506c]
comiss xmm1, xmm0
jbe 0x1016629a
movaps xmm1, xmm2
addss xmm1, dword [0x10225070]
movss dword [esi + 0x18], xmm1
movaps xmm0, xmm2
sub esp, 8
addss xmm0, xmm3
subss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100aa68f
movss xmm4, dword [0x1022505c]
add esp, 8
movss xmm0, dword [esp + 0x24]
movss xmm3, dword [0x10225070]
fstp dword [esp + 0x30]
movss xmm1, dword [esp + 0x30]
addss xmm0, xmm3
mulss xmm1, dword [edi + 0x18]
mulss xmm1, xmm4
addss xmm1, dword [esi + 0x18]
minss xmm1, xmm0
movss dword [esi + 0x18], xmm1
movaps xmm0, xmm3
mov ecx, dword [0x10275f40]
subss xmm0, xmm1
movss xmm6, dword [0x102250a4]
movss xmm5, dword [0x10225084]
movss xmm7, dword [esi + 0x1c]
lea eax, [ecx - 1]
movss dword [esp + 0x18], xmm7
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [esp + 0x14], xmm0
mulss xmm2, xmm6
movss dword [esp + 0x48], xmm0
addss xmm2, xmm5
comiss xmm7, xmm2
jbe 0x10166370
movd xmm1, ecx
movaps xmm0, xmm2
cvtdq2ps xmm1, xmm1
subss xmm0, xmm5
mulss xmm1, xmm6
addss xmm1, xmm0
mulss xmm1, dword [edi + 0x18]
mulss xmm1, xmm4
subss xmm7, xmm1
maxss xmm7, xmm2
movss dword [esp + 0x18], xmm7
movss dword [esi + 0x1c], xmm7
movss xmm0, dword ds:[esp + 0x34]
movaps xmm1, xmm3
divss xmm0, dword [0x10224fe8]
mov ecx, 0x24
movss dword [esp + 0x4c], xmm7
subss xmm1, xmm0
movss dword [esp + 0x30], xmm1
movss xmm1, dword [0x10224fac]
call fcn.1012ce80
movss xmm1, dword [esp + 0x14]
movaps xmm0, xmm7
addss xmm1, dword [0x10225094]
addss xmm0, dword [0x10225094]
push 0x50
push ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], 0x40000000
push eax
lea eax, [esp + 0x40]
movss dword [esp + 0x40], xmm1
push eax
lea eax, [esp + 0x58]
movss dword [esp + 0x48], xmm0
push eax
call fcn.10144020
movss xmm0, dword [esp + 0x1c]
xorps xmm7, xmm7
movss xmm1, dword [0x10224fac]
mov ecx, 0xa0
ucomiss xmm0, xmm7
mov edi, pe_nt_image_headers32
lahf
test ah, 0x44
cmovnp edi, ecx
mov ecx, 0x22
call fcn.1012ce80
movss xmm4, dword [0x10225094]
movss xmm1, dword ds:[esp + 0x20]
movss xmm0, dword [esp + 0x18]
addss xmm1, xmm4
addss xmm0, xmm4
push edi
mov edi, dword [esp + 0x2c]
push ecx
addss xmm1, dword [esp + 0x1c]
movss dword [esp + 0x54], xmm0
mov ecx, edi
movss xmm0, dword [esp + 0x20]
mov dword [esp], 0x40000000
addss xmm0, xmm7
push eax
movss dword [esp + 0x54], xmm1
lea eax, [esp + 0x54]
movss xmm1, dword [esp + 0x20]
addss xmm1, xmm4
push eax
lea eax, [esp + 0x44]
movss dword [esp + 0x48], xmm0
push eax
movss dword [esp + 0x48], xmm1
call fcn.10144020
movss xmm1, dword [0x10224fac]
xor ecx, ecx
call fcn.1012ce80
movss xmm1, dword [0x10225094]
movss xmm7, dword [esp + 0x18]
mov dword [esp + 0x34], eax
movaps xmm0, xmm7
addss xmm1, dword [0x1022504c]
addss xmm0, dword [esp + 0x30]
addss xmm1, dword [esp + 0x14]
movss dword [esp + 0x2c], xmm0
movss dword [esp + 0x28], xmm1
test eax, 0xff000000
je 0x10166531
mov edx, dword [esp + 0x3c]
mov ecx, edx
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101664e0
sub ecx, dword [esp + 0x3c]
add ecx, edx
cmp edx, ecx
je 0x10166531
push dword [esp + 0x2c]
mov eax, dword [edi + 0x2c]
push dword [esp + 0x2c]
movups xmm0, xmmword [edi + 0x60]
push 0
movss xmm2, dword [eax + 0xc]
push ecx
mov dword [esp], 0
push ecx
push edx
lea ecx, [esp + 0x78]
push ecx
push dword [esp + 0x50]
mov ecx, dword [eax + 8]
push edi
movups xmmword [esp + 0x84], xmm0
call fcn.101317e0
movss xmm7, dword [esp + 0x18]
movss xmm0, dword ds:[esp + 0x1c]
comiss xmm0, dword [0x10224e90]
jbe 0x1016665b
movss xmm1, dword [0x10224fac]
mov ecx, 0x24
call fcn.1012ce80
movss xmm4, dword [0x10225094]
movaps xmm0, xmm7
movss xmm1, dword [esp + 0x20]
addss xmm0, xmm4
addss xmm1, xmm4
push 0xa0
push ecx
mov dword [esp], 0x40000000
mov ecx, edi
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm7
addss xmm1, dword [esp + 0x24]
addss xmm0, dword [0x10224e90]
push eax
lea eax, [esp + 0x54]
push eax
addss xmm1, dword [esp + 0x24]
lea eax, [esp + 0x4c]
movss dword [esp + 0x50], xmm0
push eax
movss dword [esp + 0x5c], xmm1
movss xmm1, dword [esp + 0x34]
addss xmm1, xmm4
addss xmm1, dword [esp + 0x28]
movss dword [esp + 0x50], xmm1
call fcn.10144020
movss xmm1, dword [0x10224fac]
xor ecx, ecx
call fcn.1012ce80
movss xmm1, dword [esp + 0x20]
mov ecx, eax
movss xmm0, dword [esp + 0x18]
addss xmm1, dword [0x10225094]
addss xmm0, dword [esp + 0x30]
addss xmm1, dword [0x1022504c]
movss dword [esp + 0x40], xmm0
addss xmm1, dword [esp + 0x14]
movss dword [esp + 0x3c], xmm1
test ecx, 0xff000000
je 0x1016665b
push dword [esp + 0x40]
mov eax, dword [edi + 0x2c]
lea edx, [esp + 0x64]
push dword [esp + 0x40]
movups xmm0, xmmword [edi + 0x60]
push 0
movss xmm2, dword [eax + 0xc]
push ecx
mov dword [esp], 0
push 0x1022374d
push str.ICON
push edx
push ecx
mov ecx, dword [eax + 8]
push edi
movups xmmword [esp + 0x84], xmm0
call fcn.101317e0
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [0x10225070]
movss xmm0, dword [esi + 0x18]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x10166806
mov eax, dword [0x102810ac]
mov ecx, 0x102810a8
push esi
mov dword [esp + 0x28], eax
call fcn.10048220
push 0x28
push eax
call fcn.10088cc6
mov edi, dword [0x10275f40]
add esp, 8
mov dword [esp + 0x28], edi
cmp edi, dword [esp + 0x24]
jg 0x10166799
mov esi, dword [0x102810a8]
mov eax, edi
inc eax
mov dword [esp + 0x30], eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
call fcn.1004d680
mov eax, dword [esp + 0x44]
cmp byte [eax + 0xd], 0
jne 0x101666dd
mov ecx, dword [esp + 0x30]
cmp ecx, dword [eax + 0x10]
jge 0x101666df
mov eax, esi
nop
cmp eax, esi
je 0x10166788
movups xmm0, xmmword [eax + 0x18]
push eax
mov ecx, 0x102810a8
movaps xmmword [esp + 0x64], xmm0
call fcn.10048220
push 0x28
push eax
call fcn.10088cc6
add esp, 8
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.1004d680
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x48], xmm0
cmp byte [eax + 0xd], 0
jne 0x1016672f
cmp edi, dword [eax + 0x10]
jge 0x1016677c
cmp dword [0x102810ac], 0x6666666
je 0x10166865
mov esi, dword [0x102810a8]
push 0x28
call fcn.10088cd4
movaps xmm0, xmmword [esp + 0x64]
add esp, 4
mov ecx, 0x102810a8
mov dword [eax + 0x10], edi
push eax
push dword [esp + 0x50]
movups xmmword [eax + 0x18], xmm0
mov dword [eax], esi
push dword [esp + 0x50]
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov word [eax + 0xc], 0
call fcn.1004de00
dec dword [0x10275f40]
mov esi, dword [0x102810a8]
inc edi
mov eax, edi
mov dword [esp + 0x28], edi
cmp eax, dword [esp + 0x24]
jle 0x101666b6
mov al, 1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, ecx
jg 0x101667b0
jl 0x101667ac
cmp edx, dword [esi + 0x20]
jae 0x101667b0
or al, 0xff
jmp 0x101667b2
mov al, 1
movss xmm1, dword [esi + 0x18]
test al, al
jns 0x1016627a
movaps xmm0, xmm1
subss xmm0, dword [0x10224f74]
comiss xmm4, xmm0
jbe 0x101667d9
mov dword [esi + 0x18], 0
xorps xmm1, xmm1
movss xmm4, dword [0x1022505c]
movaps xmm0, xmm1
mulss xmm0, dword [edi + 0x18]
movss xmm3, dword [0x10225070]
mulss xmm0, xmm4
subss xmm1, xmm0
maxss xmm1, dword [0x10224e90]
jmp 0x101662ee
pop edi
xor al, al
pop esi
mov esp, ebp
pop ebp
ret
push 0x10280fe0
call fcn.10088d85
add esp, 4
cmp dword [0x10280fe0], 0xffffffff
jne 0x101660fb
push 0x28
call fcn.10088cd4
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [eax + 8], eax
mov word [eax + 0xc], 0x101
push 0x1018b910
mov dword [0x102810a8], eax
call fcn.10088cb1
add esp, 4
push 0x10280fe0
call fcn.10088d34
add esp, 4
jmp 0x101660fb
call fcn.100052c0
int3