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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword [ebp + 0xc]
sub esp, 0x308
mov eax, dword [eax]
push esi
push edi
mov edi, ecx
cmp dword [eax + 4], 2
jle 0x6024a1
movsx ecx, word [eax + 0x32]
jmp 0x6024a3
xor ecx, ecx
movsx eax, word [edi + 0x52]
mov dword [esp + 0x38], ecx
cmp eax, ecx
jge 0x602ef4
cmp byte [edi + 0x38], 0
je 0x6024e9
cmp dword [edi + 0xb8], 0
je 0x6024e9
movss xmm0, dword [edi + 0x44]
comiss xmm0, dword [edi + 0xbc]
mov dword [edi + 0xc0], 0
seta al
mov byte [edi + 0xb6], al
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x60250b
mov dword [eax + 8], 0
mov eax, dword [edi + 0x2c]
mov dword [eax + 0x40], 0x7f7fffee
mov dword [edi + 0xc0], 0
mov eax, dword [ebp + 8]
xor esi, esi
mov dword [edi + 0xb8], 0
mov dword [edi + 0xbc], 0x7f7fffee
mov byte [edi + 0xb6], 0
mov byte [edi + 0xc4], 0
mov eax, dword [eax]
mov dword [esp + 0xc], 0
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x60254e
xor eax, eax
jmp 0x602553
call fcn.005cca00
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x3c], ecx
movzx ecx, word [edi + 0x52]
cmp cx, 0xffff
sete dl
mov byte [esp + 0xb], dl
test dl, dl
je 0x6025ef
test eax, eax
je 0x602ef4
movsx ecx, word [edi + 0x50]
mov eax, dword [eax + 0x20]
mov ecx, dword [eax + ecx*4]
test ecx, ecx
jns 0x60259c
xorps xmm0, xmm0
mov dword [esp + 0xc], esi
movaps xmmword [esp + 0x40], xmm0
jmp 0x6026f2
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov eax, dword [eax + ecx*4]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x6025bb
xorps xmm0, xmm0
movaps xmmword [esp + 0x40], xmm0
jmp 0x6026f2
cmp byte [edi + 0x98], 0
lea esi, [eax + 0xf0]
je 0x6025dc
movaps xmm0, xmmword [esi + 0x30]
addps xmm0, xmmword [edi + 0x60]
movaps xmmword [esp + 0x40], xmm0
jmp 0x6026f2
lea eax, [edi + 0x60]
push eax
push esi
lea ecx, [esp + 0x48]
call fcn.0046e9f0
jmp 0x6026ee
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0xb0]
push eax
push dword [esp + 0x40]
movsx eax, cx
push esi
push eax
call fcn.005df500
mov eax, dword [esi]
lea ecx, [esp + 0xd0]
movaps xmm2, xmmword [esp + 0xc0]
add esp, 0x10
movsx esi, word [eax + 0x14]
add esi, eax
movaps xmm5, xmmword [esi + 0x10]
lea eax, [esi + 0x10]
movaps xmm4, xmm5
movaps xmm3, xmm5
mulps xmm4, xmm2
movaps xmm1, xmm5
push ecx
shufps xmm3, xmm5, 0xc9
movaps xmm6, xmm5
shufps xmm1, xmm5, 0xd2
lea ecx, [esp + 0x104]
shufps xmm6, xmm5, 0xff
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
push eax
addss xmm4, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
subps xmm3, xmm1
mulps xmm3, xmm6
mulps xmm6, xmm6
addps xmm6, xmmword [0x7195c0]
mulps xmm6, xmm2
addps xmm6, xmm4
addps xmm3, xmm6
addps xmm3, xmm3
addps xmm3, xmmword [esi]
movaps xmmword [esp + 0xf8], xmm3
call fcn.004782a0
cmp byte [edi + 0x98], 0
movaps xmm0, xmmword [esi + 0x20]
mulps xmm0, xmmword [esp + 0xd0]
movaps xmmword [esp + 0x110], xmm0
je 0x6026d7
movaps xmm0, xmmword [edi + 0x60]
addps xmm0, xmmword [esp + 0xf0]
movaps xmmword [esp + 0x40], xmm0
jmp 0x6026ec
lea eax, [edi + 0x60]
push eax
lea eax, [esp + 0xf4]
push eax
lea ecx, [esp + 0x48]
call fcn.0046eb90
xor esi, esi
mov dl, byte [esp + 0xb]
cmp byte [edi + 0xb4], 0
je 0x60272a
test dl, dl
je 0x60272a
movss xmm0, dword [edi + 0xc0]
mov eax, dword [esp + 0xc]
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [eax + 0x1b0]
mov dword [edi + 0xc0], 0
addps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
mov al, byte [edi + 0x30]
test al, al
je 0x6027a0
cmp al, 2
je 0x6027a0
test dl, dl
je 0x602754
lea eax, [edi + 0x80]
push eax
push esi
lea ecx, [esp + 0x68]
call fcn.0046e9b0
movaps xmm6, xmmword [esp + 0x60]
jmp 0x60281e
movaps xmm2, xmmword [edi + 0x80]
movaps xmm4, xmmword [esp + 0x100]
movaps xmm3, xmm2
mulps xmm3, xmm4
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
movaps xmm6, xmm2
shufps xmm6, xmm2, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm6, xmm0
jmp 0x6027f4
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x24]
mov eax, dword [ebp + 0xc]
movaps xmm2, xmmword [edx + 0x30]
mov ecx, dword [eax]
movsx eax, word [ecx + 0x14]
movaps xmm4, xmmword [eax + ecx + 0x10]
movaps xmm3, xmm4
movaps xmm6, xmm4
mulps xmm3, xmm2
movaps xmm1, xmm4
shufps xmm6, xmm4, 0xc9
shufps xmm1, xmm4, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
subps xmm6, xmm1
shufps xmm3, xmm3, 0
movaps xmm5, xmm4
mulps xmm3, xmm4
shufps xmm5, xmm4, 0xff
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
addps xmm5, xmm3
addps xmm6, xmm5
addps xmm6, xmm6
movaps xmm4, xmm6
mov ecx, dword [ebp + 8]
mulps xmm4, xmm6
lea eax, [esp + 0x190]
mov dword [esp + method.hkpAllCdPointCollector.virtual_0], vtable.hkpAllCdPointCollector.0
mov dword [esp + 0x180], eax
mov dword [esp + 0x188], listen
mov dword [esp + 0x184], 0
movaps xmm0, xmm4
mov dword [esp + 0x174], 0x7f7fffee
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm0
movss xmm0, dword [0x719764]
movaps xmm5, xmm0
movaps xmmword [esp + 0x80], xmm1
movss xmm0, dword [0x719760]
movaps xmm7, xmm0
movaps xmmword [esp + 0x90], xmm5
shufps xmm4, xmm4, 0
movaps xmm3, xmm4
movaps xmmword [esp + 0xa0], xmm7
rsqrtss xmm3, xmm3
movaps xmm2, xmm4
mulss xmm0, xmm3
mulss xmm4, xmm3
cmpeqss xmm2, xmm1
movaps xmm1, xmm5
mulss xmm4, xmm3
subss xmm1, xmm4
mulss xmm0, xmm1
andnps xmm2, xmm0
movss xmm0, dword [edi + 0x3c]
shufps xmm2, xmm2, 0
movaps xmm1, xmm0
mulss xmm1, dword [0x77fa2c]
mulss xmm0, dword [0x786a3c]
mulps xmm2, xmm6
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x1c], xmm0
movaps xmmword [esp + 0x60], xmm2
call fcn.005c60b0
mov esi, eax
mov ecx, esi
call fcn.0050d7e0
movss xmm0, dword [esp + 0x1c]
lea eax, [esp + 0x170]
push eax
sub esp, 8
lea eax, [esp + 0x4c]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp], xmm0
push eax
push dword [edi + 0x34]
push esi
call fcn.005d0330
add esp, 0x18
mov ecx, esi
call fcn.0050d800
lea ecx, [esp + 0x170]
call fcn.006c1610
mov ecx, dword [ebp + 8]
call fcn.005c60b0
mov ecx, eax
call fcn.0050d7e0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], 0xffffffff
test eax, eax
je 0x60298b
cmp dword [eax + 0xc], 0
jle 0x60298b
mov eax, dword [eax + 8]
mov eax, dword [eax]
movzx eax, word [eax + 0x2e]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x184]
mov ecx, dword [esp + 0x180]
mov edx, ecx
mov dword [esp + 0xc], ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
cmp edx, eax
je 0x602ea4
movaps xmm0, xmmword [esp + 0x40]
movaps xmmword [esp + 0x20], xmm0
nop dword [eax]
mov eax, dword [ecx + 0x28]
cmp byte [eax + 0x18], 1
movzx esi, word [eax + 0x1e]
mov dword [esp + 0x5c], esi
jne 0x602b67
movsx esi, byte [eax + 0x10]
add esi, eax
mov eax, dword [edi + 0x94]
mov dword [esp + 0x1c], esi
test eax, eax
je 0x602a06
push 0
push eax
lea eax, [esp + 0xf0]
mov ecx, esi
push eax
call fcn.005aca20
mov ecx, dword [eax]
or ecx, dword [eax + 4]
jne 0x602a06
xor al, al
jmp 0x602a08
mov al, 1
cmp byte [edi + 0x39], 0
je 0x602a1c
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x5c], ecx
je 0x602b5c
test al, al
je 0x602b5c
cmp byte [edi + 0x30], 4
mov byte [esp + 0x10], 1
je 0x602aed
cmp byte [edi + 0x48], 0
movaps xmm1, xmmword [esp + 0x90]
jne 0x602a4a
movaps xmm4, xmmword [esi + 0x140]
jmp 0x602a51
mov eax, dword [esp + 0xc]
movaps xmm4, xmmword [eax]
subps xmm4, xmmword [esp + 0x20]
movaps xmm3, xmm4
mulps xmm3, xmm4
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmmword [esp + 0xa0]
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm5, xmm3
cmpeqss xmm5, dword [esp + 0x80]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm5, xmm0
shufps xmm5, xmm5, 0
mulps xmm5, xmm4
mulps xmm5, xmmword [esp + 0x60]
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm5, xmm5, 0xaa
addss xmm5, xmm0
movss xmm0, dword [edi + 0x4c]
shufps xmm5, xmm5, 0
movaps xmmword [esp + 0x20], xmm5
call fcn.0062b671
mov eax, dword [esp + 0x10]
xor ecx, ecx
comiss xmm0, dword [esp + 0x20]
movzx eax, al
cmovae eax, ecx
mov dword [esp + 0x10], eax
mov ecx, dword [ebp + 8]
call fcn.005c60d0
movaps xmm1, xmmword [esi + 0x120]
mov ecx, dword [ebp + 8]
mulps xmm1, xmmword [eax]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
movaps xmmword [esp + 0x70], xmm1
call fcn.005c60d0
movaps xmm2, xmmword [esp + 0x40]
movaps xmm1, xmm2
movaps xmmword [esp + 0x20], xmm2
mulps xmm1, xmmword [eax]
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
movaps xmm0, xmmword [esp + 0x70]
subss xmm0, xmm1
comiss xmm0, dword [edi + 0x40]
jae 0x602b5c
cmp byte [esp + 0x10], 0
jne 0x602b8a
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x180]
mov eax, dword [esp + 0x184]
add ecx, 0x30
mov dword [esp + 0xc], ecx
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
cmp ecx, eax
jne 0x6029c0
jmp 0x602ea4
movzx ecx, word [edi + 0x54]
cmp cx, 0xffff
jne 0x602bb1
movzx eax, word [edi + 0x56]
cmp ax, cx
je 0x602d04
cwde
cmp eax, dword [esp + 0x38]
jge 0x602d04
cmp cx, cx
je 0x602bf9
movsx eax, cx
mov ecx, dword [esp + 0x14]
push eax
call fcn.005a33b0
test eax, eax
jne 0x602bca
xorps xmm2, xmm2
jmp 0x602cff
cmp byte [edi + 0x98], 0
lea ecx, [eax + 0xf0]
je 0x602be6
movaps xmm2, xmmword [ecx + 0x30]
addps xmm2, xmmword [edi + 0x70]
jmp 0x602cff
lea eax, [edi + 0x70]
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.0046e9f0
jmp 0x602cfa
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0x120]
push eax
push dword [esp + 0x40]
movsx eax, word [edi + 0x56]
push esi
push eax
call fcn.005df500
mov eax, dword [esi]
lea ecx, [esp + 0x140]
movaps xmm2, xmmword [esp + 0x130]
add esp, 0x10
movsx esi, word [eax + 0x14]
add esi, eax
movaps xmm5, xmmword [esi + 0x10]
lea eax, [esi + 0x10]
movaps xmm4, xmm5
movaps xmm3, xmm5
mulps xmm4, xmm2
movaps xmm1, xmm5
push ecx
shufps xmm3, xmm5, 0xc9
movaps xmm6, xmm5
shufps xmm1, xmm5, 0xd2
lea ecx, [esp + 0xc4]
shufps xmm6, xmm5, 0xff
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
push eax
addss xmm4, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
subps xmm3, xmm1
mulps xmm3, xmm6
mulps xmm6, xmm6
addps xmm6, xmmword [0x7195c0]
mulps xmm6, xmm2
addps xmm6, xmm4
addps xmm3, xmm6
addps xmm3, xmm3
addps xmm3, xmmword [esi]
movaps xmmword [esp + 0xb8], xmm3
call fcn.004782a0
cmp byte [edi + 0x98], 0
movaps xmm0, xmmword [esi + 0x20]
mulps xmm0, xmmword [esp + 0x140]
movaps xmmword [esp + 0xd0], xmm0
je 0x602ce1
movaps xmm2, xmmword [edi + 0x70]
addps xmm2, xmmword [esp + 0xb0]
mov esi, dword [esp + 0x1c]
jmp 0x602cff
lea eax, [edi + 0x70]
push eax
lea eax, [esp + 0xb4]
push eax
lea ecx, [esp + 0x28]
call fcn.0046eb90
mov esi, dword [esp + 0x1c]
movaps xmm2, xmmword [esp + 0x20]
movaps xmmword [esp + 0x40], xmm2
cmp byte [edi + 0x49], 0
mov edx, dword [esp + 0xc]
jne 0x602d17
subps xmm2, xmmword [esi + 0x120]
jmp 0x602d1a
subps xmm2, xmmword [edx]
mov eax, dword [edi + 0x2c]
movaps xmmword [esp + 0x20], xmm2
test eax, eax
je 0x602df4
movaps xmm1, xmm2
mov dword [eax + 8], esi
mulps xmm1, xmm2
mov eax, dword [edi + 0x2c]
push edx
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
sqrtss xmm1, xmm1
movss dword [eax + 0x40], xmm1
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + 8]
add ecx, 0x10
add eax, 0xf0
push eax
call fcn.0046ea30
mov ecx, dword [edi + 0x2c]
mov eax, dword [ecx + 8]
movaps xmm5, xmmword [eax + 0x160]
mov eax, dword [esp + 0xc]
movaps xmm4, xmm5
movaps xmm6, xmm5
shufps xmm6, xmm5, 0xff
movaps xmm3, xmmword [eax + 0x10]
mulps xmm4, xmm3
movaps xmm2, xmm3
shufps xmm2, xmm3, 0xc9
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xd2
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xc9
mulps xmm1, xmm0
xorps xmm0, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
subps xmm2, xmm1
mulps xmm2, xmm6
mulps xmm6, xmm6
addps xmm6, xmmword [0x7195c0]
mulps xmm6, xmm3
addps xmm6, xmm4
addps xmm2, xmm6
addps xmm2, xmm2
movaps xmmword [ecx + 0x20], xmm2
mov eax, dword [edi + 0x2c]
movaps xmm2, xmmword [esp + 0x20]
movaps xmmword [eax + 0x30], xmm0
mulps xmm2, xmm2
mov dword [edi + 0xb8], esi
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movss xmm0, dword [edi + 0x44]
sqrtss xmm2, xmm2
comiss xmm0, xmm2
movss dword [edi + 0xbc], xmm2
seta al
mov byte [edi + 0xb6], al
cmp dword [esi + 0x210], 0
je 0x602ea4
lea eax, [esp + 0x40]
push eax
lea eax, [esi + 0xf0]
push eax
lea ecx, [esp + 0x78]
call fcn.0046ea30
push 0
lea ecx, [esp + 0x124]
call fcn.005dfc00
push esi
lea ecx, [esp + 0x124]
call fcn.005dfd70
mov ecx, dword [esi + 0x210]
lea edx, [esp + 0x120]
movss xmm0, dword [edi + 0x3c]
push edx
push ecx
mov eax, dword [ecx]
lea edx, [esp + 0x78]
movss dword [esp], xmm0
push edx
call dword [eax + 0x18]
mov ecx, dword [esp + 0x130]
test ecx, ecx
je 0x602ea4
mov eax, dword [edi + 0x2c]
test eax, eax
je 0x602ea4
add eax, 0x30
push eax
call fcn.00461bb0
mov ecx, dword [ebp + 8]
call fcn.005c60b0
mov ecx, eax
call fcn.0050d800
mov eax, dword [esp + 0x188]
mov dword [esp + method.hkpAllCdPointCollector.virtual_0], vtable.hkpAllCdPointCollector.0
mov dword [esp + 0x184], 0
test eax, eax
js 0x602ef4
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 4
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x184]
call dword [eax + 0x10]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8