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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x1e8
mov eax, dword [0x1005500c]
xor eax, esp
mov dword [esp + 0x1e4], eax
mov eax, dword [ecx]
push esi
push edi
mov dword [esp + 0x50], edx
mov eax, dword [eax + 0x378]
mov dword [esp + 0x58], ecx
call eax
mov edi, eax
test edi, edi
je 0x1002cee1
mov ecx, dword fs:[0x2c]
mov edx, dword [0x10055d50]
mov eax, dword [ecx + edx*4]
mov ecx, dword [0x1005638c]
mov dword [esp + 0x54], eax
cmp ecx, dword [eax + 4]
jle 0x1002c79b
push 0x1005638c
call fcn.100402ff
add esp, 4
cmp dword [0x1005638c], 0xffffffff
jne 0x1002c79b
mov edx, str.0F_B7_81_________50_E8_________83_C4_04_C3
mov ecx, str.client.dll
call fcn.100400a0
push 0x1005638c
mov dword [0x100563c0], eax
mov dword [0x100563c4], 0
call fcn.100402b5
add esp, 4
mov eax, dword [0x100563c0]
mov ecx, edi
call eax
mov dword [esp + 0x5c], eax
test eax, eax
je 0x1002cee1
mov ecx, dword [edi]
mov edx, dword [ecx + 0x5b4]
mov ecx, edi
call edx
mov edx, dword [esp + 0x5c]
mov ecx, eax
mov dword [esp + 0x2c], ecx
mov eax, dword [edx + 0x6c0]
movss xmm0, dword [edx + 0x88c]
mov esi, dword [edx + 0x888]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x884]
mov dword [esp + 0x48], eax
mov ax, word [0x100563a4]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [edx + 0x890]
movss dword [esp + 0x3c], xmm0
test ax, ax
jne 0x1002c81b
mov ecx, 0x8d412247
call fcn.1002bf00
mov ecx, dword [esp + 0x2c]
mov word [0x100563a4], ax
movzx eax, ax
cmp dword [eax + edi], 1
jne 0x1002c85c
cmp ecx, 2
jne 0x1002c83c
movss xmm0, dword [0x1004fe9c]
lea esi, [ecx + 0x10]
movss dword [esp + 0x3c], xmm0
jmp 0x1002c85c
cmp ecx, 0x15
jne 0x1002c851
movss xmm0, dword [0x1004fea0]
movss dword [esp + 0x3c], xmm0
jmp 0x1002c85c
cmp ecx, 0x10
mov eax, 0x1e
cmove esi, eax
movss xmm1, dword [ebp + 0xc]
mulss xmm1, dword [0x1004fe4c]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
movss dword [esp + 0x28], xmm1
movss xmm1, dword [ebp + 8]
mulss xmm1, dword [0x1004fe4c]
movss dword [esp + 0x1c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x2c], xmm0
movaps xmm0, xmm1
movss dword [esp + 0x140], xmm1
call fcn.10002090
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x28]
call fcn.10002090
mulss xmm0, dword [esp + 0x30]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [esp + 0x28]
call fcn.100020d0
mulss xmm0, dword [esp + 0x30]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x140]
call fcn.100020d0
mov ecx, dword [esp + 0x54]
xorps xmm0, xmmword [0x10050480]
mov eax, dword [0x10056404]
movss dword [esp + 0x28], xmm0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
cmp eax, dword [ecx + 4]
jle 0x1002c958
push 0x10056404
call fcn.100402ff
add esp, 4
cmp dword [0x10056404], 0xffffffff
jne 0x1002c958
mov edx, str.E8_________F3_0F_10_43___33_FF
mov ecx, str.client.dll
call fcn.100400a0
push 0x10056404
mov ecx, dword [eax + 1]
add ecx, 5
add eax, ecx
mov dword [0x10056408], eax
call fcn.100402b5
add esp, 4
lea eax, [esp + 0x140]
push eax
lea eax, [esp + 0x148]
push eax
push dword [esp + 0x2c]
call dword [0x10056408]
mov ax, word [0x100563b8]
test ax, ax
jne 0x1002c98d
mov ecx, 0xfc40137f
call fcn.1002bf00
mov word [0x100563b8], ax
mov edi, dword [esp + 0x58]
movzx esi, ax
mov ax, word [0x100563d4]
test ax, ax
jne 0x1002c9af
mov ecx, 0x4ee6d885
call fcn.1002bf00
mov word [0x100563d4], ax
movss xmm2, dword [esi + edi + 4]
movss xmm3, dword [esi + edi + 8]
movss xmm1, dword [esi + edi]
movss xmm0, dword [esp + 0x1c]
movzx eax, ax
add eax, edi
comiss xmm0, dword [0x1004fe24]
addss xmm2, dword [eax + 4]
addss xmm3, dword [eax + 8]
addss xmm1, dword [eax]
movss dword [esp + 0x44], xmm2
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x40], xmm1
movss dword [esp + 0x154], xmm1
movss dword [esp + 0x158], xmm2
movss dword [esp + 0x15c], xmm3
jbe 0x1002cee1
movss xmm4, dword [esp + 0x4c]
movss xmm0, dword [0x1004ff28]
movaps xmm5, xmm4
mulss xmm5, xmm0
movss dword [esp + 0x60], xmm5
movss xmm5, dword [esp + 0x30]
movaps xmm6, xmm5
mulss xmm6, xmm0
movss dword [esp + 0x64], xmm6
movss xmm6, dword [esp + 0x28]
movaps xmm7, xmm6
mulss xmm7, xmm0
movss dword [esp + 0x68], xmm7
movss xmm7, dword [esp + 0x38]
nop word [eax + eax]
movaps xmm0, xmm4
lea eax, [esp + 0x9c]
mulss xmm0, xmm7
push 0x30
push 0
push eax
addss xmm0, xmm1
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm5
mulss xmm0, xmm7
addss xmm0, xmm2
movss dword [esp + 0x20], xmm0
movaps xmm0, xmm6
mulss xmm0, xmm7
addss xmm0, xmm3
movss dword [esp + 0x30], xmm0
call sub.VCRUNTIME140.dll_memset
movss xmm2, dword [esp + 0x24]
add esp, 0xc
movss xmm3, dword [esp + 0x40]
movss xmm1, dword [esp + 0x14]
subss xmm2, xmm3
movss xmm4, dword [esp + 0x44]
movss xmm0, dword [esp + 0x24]
subss xmm1, xmm4
movss xmm5, dword [esp + 0x34]
subss xmm0, xmm5
mov dword [esp + 0x80], 0x7f800000
movss dword [esp + 0x170], xmm2
mulss xmm2, xmm2
mov dword [esp + 0x7c], 0x7f800000
movss dword [esp + 0x174], xmm1
mulss xmm1, xmm1
mov dword [esp + 0x78], 0x7f800000
movss dword [esp + 0x178], xmm0
mulss xmm0, xmm0
mov dword [esp + 0x8c], 0x7f800000
addss xmm1, xmm2
mov dword [esp + 0x88], 0x7f800000
mov dword [esp + 0x84], 0x7f800000
mov dword [esp + 0x98], 0x7f800000
mov dword [esp + 0x94], 0x7f800000
mov dword [esp + 0x90], 0x7f800000
addss xmm1, xmm0
mov byte [esp + 0x19d], 1
ucomiss xmm1, dword [0x1004fe24]
lahf
test ah, 0x44
jp 0x1002cb80
mov byte [esp + 0x19d], 0
mov ecx, dword [0x1005631c]
lea edx, [esp + 0x78]
push edx
lea edx, [esp + 0xd4]
mov dword [esp + 0x19c], 0
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x168]
push 0x4600400b
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x19c], 0
mov byte [esp + 0x1a8], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
movss dword [esp + 0x16c], xmm3
movss dword [esp + 0x170], xmm4
movss dword [esp + 0x174], xmm5
mov dword [esp + 0xdc], 0x1004db98
mov dword [esp + 0xe0], edi
mov eax, dword [eax + 0x10]
push edx
call eax
movss xmm0, dword [esp + 0x60]
addss xmm0, dword [esp + 0x18]
mov ecx, dword [esp + 0x54]
mov eax, dword [0x100564ac]
mov dword [esp + 0xd8], 0x1004db98
mov dword [esp + 0xdc], edi
movss dword [esp + 0x6c], xmm0
movss xmm0, dword [esp + 0x64]
addss xmm0, dword [esp + 0x14]
movss dword [esp + 0x70], xmm0
movss xmm0, dword [esp + 0x68]
addss xmm0, dword [esp + 0x24]
movss dword [esp + 0x74], xmm0
cmp eax, dword [ecx + 4]
jle 0x1002ccae
push 0x100564ac
call fcn.100402ff
add esp, 4
cmp dword [0x100564ac], 0xffffffff
jne 0x1002ccae
mov edx, str.53_8B_DC_83_EC_08_83_E4_F0_83_C4_04_55_8B_6B_04_89_6C_24_04_8B_EC_81_EC_________8B_43_18
mov ecx, str.client.dll
call fcn.100400a0
push 0x100564ac
mov dword [0x1005649c], eax
call fcn.100402b5
add esp, 4
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0xdc]
push eax
push 0x4600400b
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0x164]
push eax
call dword [0x1005649c]
movss xmm0, dword [esp + 0xb8]
add esp, 0x14
ucomiss xmm0, dword [0x1004feb0]
lahf
test ah, 0x44
jnp 0x1002cee1
mov ecx, dword [0x10056318]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
movsx eax, word [esp + 0xb8]
push eax
call edx
movzx edi, word [eax + 0x48]
lea eax, [edi - 0x43]
cmp eax, 0x14
ja case.0x1002cd1d.69
movzx eax, byte [eax + 0x1002d530]
jmp dword [eax*4 + 0x1002d510]
movss xmm0, dword [0x1004fe70]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x1004fe64]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x1004feb0]
jmp 0x1002ce2f
movss xmm0, dword [0x1004fe78]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x1004fe68]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x1004feb0]
jmp 0x1002ce2f
movss xmm0, dword [0x1004feb0]
movss xmm1, dword [0x1004fea8]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm1
jmp 0x1002ce37
movss xmm0, dword [0x1004fe70]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x1004fe74]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x1004feb0]
jmp 0x1002ce2f
movss xmm0, dword [0x1004fe80]
jmp 0x1002cd55
movss xmm0, dword [0x1004fe78]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x1004fe74]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x1004feb0]
jmp 0x1002ce2f
movss xmm0, dword [0x1004feb0]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [0x1004fe7c]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [0x1004feb0]
jmp 0x1002ce2f
movss xmm0, dword [0x1004feb0]
movss xmm1, dword [0x1004fe78]
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [0x1004fea8]
mov eax, dword [esp + 0xa8]
shr eax, 3
and al, 1
mov dword [esp + 0x34], eax
je 0x1002ce55
movss dword [esp + 0x14], xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [esp + 0xa4]
mulss xmm1, dword [esp + 0x38]
movss xmm0, dword [esp + 0x3c]
cvtps2pd xmm0, xmm0
addss xmm1, dword [esp + 0x2c]
movss dword [esp + 0x24], xmm1
divss xmm1, dword [0x1004ff64]
cvtps2pd xmm1, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_pow_precise
mov esi, dword [esp + 0xc4]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x1c], xmm0
cmp esi, dword [esp + 0x50]
jne 0x1002ceba
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x1002ceba
cmp ecx, 0xa
jne 0x1002d3f3
movss xmm0, dword [esp + 0x24]
comiss xmm0, dword [esp + 0x140]
mov esi, dword [esp + 0x48]
jbe 0x1002ced6
test esi, esi
jle 0x1002ced8
xor esi, esi
jmp 0x1002ceda
test esi, esi
jne 0x1002cef7
cmp byte [esp + 0x34], 0
jne 0x1002cefb
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.100401be
mov esp, ebp
pop ebp
ret
test esi, esi
js 0x1002cee1
xorps xmm3, xmm3
nop
addss xmm3, dword [0x1004ff20]
movss xmm2, dword [esp + 0x4c]
lea edx, [esp + 0x148]
movss xmm1, dword [esp + 0x30]
movss xmm0, dword [esp + 0x28]
mov ecx, dword [0x1005631c]
mulss xmm2, xmm3
push 0
mulss xmm1, xmm3
push edx
addss xmm2, dword [esp + 0x8c]
mulss xmm0, xmm3
addss xmm1, dword [esp + 0x90]
movss dword [esp + 0x34], xmm3
addss xmm0, dword [esp + 0x94]
movss dword [esp + 0x150], xmm2
movss dword [esp + 0x154], xmm1
movss dword [esp + 0x158], xmm0
mov eax, dword [ecx]
mov eax, dword [eax]
call eax
test eax, 0x200400b
je 0x1002cfac
movss xmm3, dword [esp + 0x2c]
movss xmm0, dword [0x1004ff44]
comiss xmm0, xmm3
jae 0x1002cf00
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x1e4]
xor ecx, esp
call fcn.100401be
mov esp, ebp
pop ebp
ret
push 0x30
lea eax, [esp + 0x110]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movss xmm2, dword [esp + 0x90]
add esp, 0xc
movss xmm3, dword [esp + 0x148]
movss xmm1, dword [esp + 0x88]
subss xmm2, xmm3
movss xmm4, dword [esp + 0x14c]
movss xmm0, dword [esp + 0x8c]
subss xmm1, xmm4
movss xmm5, dword [esp + 0x150]
subss xmm0, xmm5
mov dword [esp + 0xf0], 0x7f800000
movss dword [esp + 0x170], xmm2
mulss xmm2, xmm2
mov dword [esp + 0xec], 0x7f800000
movss dword [esp + 0x174], xmm1
mulss xmm1, xmm1
mov dword [esp + 0xe8], 0x7f800000
movss dword [esp + 0x178], xmm0
mulss xmm0, xmm0
mov dword [esp + 0xfc], 0x7f800000
addss xmm1, xmm2
mov dword [esp + 0xf8], 0x7f800000
mov dword [esp + 0xf4], 0x7f800000
mov dword [esp + 0x108], 0x7f800000
mov dword [esp + 0x104], 0x7f800000
mov dword [esp + 0x100], 0x7f800000
addss xmm1, xmm0
mov byte [esp + 0x19d], 1
ucomiss xmm1, dword [0x1004fe24]
lahf
test ah, 0x44
jp 0x1002d0b1
mov byte [esp + 0x19d], 0
mov ecx, dword [0x1005631c]
lea edx, [esp + 0xe8]
push edx
push 0
push 0x4600400b
mov eax, dword [ecx]
lea edx, [esp + 0x16c]
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x19c], 0
mov byte [esp + 0x1a8], 1
mov dword [esp + 0x194], 0
mov dword [esp + 0x190], 0
mov dword [esp + 0x18c], 0
movss dword [esp + 0x16c], xmm3
movss dword [esp + 0x170], xmm4
movss dword [esp + 0x174], xmm5
mov eax, dword [eax + 0x10]
push edx
call eax
mov ecx, dword [esp + 0x134]
cmp ecx, dword [esp + 0xc4]
je 0x1002d285
test ecx, ecx
je 0x1002d285
movss xmm2, dword [esp + 0x84]
movss xmm3, dword [esp + 0x148]
movss xmm1, dword [esp + 0x88]
subss xmm2, xmm3
movss xmm4, dword [esp + 0x14c]
movss xmm0, dword [esp + 0x8c]
subss xmm1, xmm4
movss xmm5, dword [esp + 0x150]
subss xmm0, xmm5
mov byte [esp + 0x1dd], 1
movss dword [esp + 0x1b0], xmm2
mulss xmm2, xmm2
movss dword [esp + 0x1b4], xmm1
mulss xmm1, xmm1
movss dword [esp + 0x1b8], xmm0
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
ucomiss xmm1, dword [0x1004fe24]
lahf
test ah, 0x44
jp 0x1002d1e4
mov byte [esp + 0x1dd], 0
mov dword [esp + 0xe4], ecx
lea edx, [esp + 0xe8]
mov ecx, dword [0x1005631c]
push edx
lea edx, [esp + 0xe4]
mov dword [esp + 0x1dc], 0
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x1a8]
push 0x4600400b
mov dword [esp + 0x1e0], 0
mov dword [esp + 0x1dc], 0
mov byte [esp + 0x1e8], 1
mov dword [esp + 0x1d4], 0
mov dword [esp + 0x1d0], 0
mov dword [esp + 0x1cc], 0
movss dword [esp + 0x1ac], xmm3
movss dword [esp + 0x1b0], xmm4
movss dword [esp + 0x1b4], xmm5
mov dword [esp + 0xec], 0x1004db98
mov eax, dword [eax + 0x10]
push edx
call eax
mov ecx, dword [0x10056318]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
movsx eax, word [esp + 0x128]
push eax
call edx
movzx ecx, word [eax + 0x48]
mov eax, ecx
cmp edi, eax
jne 0x1002d2bf
cmp eax, 0x57
je 0x1002d2af
cmp ecx, 0x4d
jne 0x1002d2bf
movss xmm0, dword [esp + 0x14]
addss xmm0, xmm0
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0xf4]
movaps xmm2, xmm0
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0xf8]
subss xmm2, dword [esp + 0x84]
movaps xmm1, xmm0
movss dword [esp + 0x44], xmm0
subss xmm1, dword [esp + 0x88]
movss xmm0, dword [esp + 0xfc]
movss dword [esp + 0x34], xmm0
subss xmm0, dword [esp + 0x8c]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm0, xmm1
call fcn.100020f0
movss xmm2, dword [esp + 0x144]
movaps xmm4, xmm0
movss xmm0, dword [esp + 0x14]
movaps xmm1, xmm0
mulss xmm1, xmm2
comiss xmm4, xmm1
ja 0x1002cee1
movaps xmm1, xmm4
movss xmm3, dword [esp + 0x34]
addss xmm4, dword [esp + 0x24]
divss xmm1, xmm0
dec esi
mov dword [esp + 0x48], esi
movss xmm0, dword [esp + 0x38]
subss xmm0, xmm4
movss dword [esp + 0x2c], xmm4
subss xmm2, xmm1
movss dword [esp + 0x15c], xmm3
movss xmm1, dword [esp + 0x40]
movss dword [esp + 0x154], xmm1
cvtps2pd xmm0, xmm0
movss dword [esp + 0x144], xmm2
mulsd xmm0, qword [0x1004fec8]
movss xmm2, dword [esp + 0x44]
movss dword [esp + 0x158], xmm2
cvtpd2ps xmm7, xmm0
movss xmm0, dword [esp + 0x18]
mulss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x38], xmm7
comiss xmm0, dword [0x1004fe24]
movss dword [esp + 0x1c], xmm0
jbe 0x1002cee1
movss xmm4, dword [esp + 0x4c]
movss xmm5, dword [esp + 0x30]
movss xmm6, dword [esp + 0x28]
mov edi, dword [esp + 0x58]
jmp 0x1002ca60
mov eax, dword [esp + 0x5c]
movss xmm0, dword [eax + 0x70c]
mov ax, word [0x100563a0]
movss dword [esp + 0x50], xmm0
test ax, ax
jne 0x1002d427
mov ecx, 0xeaa7fc9b
call fcn.1002bf00
mov ecx, dword [esp + 0xbc]
mov word [0x100563a0], ax
movzx eax, ax
mov al, byte [eax + esi]
mov byte [esp + 0x23], al
mov ax, word [0x100563bc]
test ax, ax
jne 0x1002d453
mov ecx, 0x298e1f5e
call fcn.1002bf00
mov ecx, dword [esp + 0xbc]
mov word [0x100563bc], ax
movzx eax, ax
lea edx, [ecx - 1]
mov eax, dword [eax + esi]
cmp edx, 6
ja case.0x1002d461.2
jmp dword [edx*4 + 0x1002d548]
movss xmm1, dword [esp + 0x1c]
mulss xmm1, dword [0x1004ff00]
jmp 0x1002d49e
movss xmm1, dword [esp + 0x1c]
mulss xmm1, dword [0x1004feb8]
jmp 0x1002d49e
movss xmm1, dword [esp + 0x1c]
mulss xmm1, dword [0x1004fe90]
jmp 0x1002d49e
movss xmm1, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x50]
movss xmm4, dword [0x1004fe78]
mulss xmm2, xmm4
test eax, eax
jle case.default.0x1002d4b9
cmp ecx, 5
ja case.default.0x1002d4b9
jmp dword [ecx*4 + 0x1002d564]
cmp byte [esp + 0x23], 0
je case.default.0x1002d4b9
mulss xmm2, xmm1
movaps xmm0, xmm1
movd xmm3, eax
cvtdq2ps xmm3, xmm3
subss xmm0, xmm2
mulss xmm0, xmm4
comiss xmm0, xmm3
jbe 0x1002d4ed
addss xmm3, xmm3
movaps xmm2, xmm1
subss xmm2, xmm3
movaps xmm1, xmm2
comiss xmm1, dword [0x10055334]
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
seta al
xor ecx, esp
call fcn.100401be
mov esp, ebp
pop ebp
ret