Function at 0x1014f460
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1b98
call fcn.100c53f0
mov eax, dword [0x103390c8]
push esi
push edi
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 4]
cmp byte [eax + 8], 0
je 0x1014ff55
mov eax, dword [0x103390d4]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov ecx, eax
call fcn.10009280
mov edx, dword [0x103390d4]
mov dword [esp + 0x2c], eax
mov edi, dword [edx + 0x10]
mov ecx, dword [edx + 0x1c]
mov esi, dword [edi]
mov edx, dword [ecx]
mov esi, dword [esi + 0xc]
mov edx, dword [edx + 0x30]
call edx
push eax
mov ecx, edi
call esi
mov ecx, eax
call fcn.10024890
mov ecx, dword [esp + 0x2c]
movss xmm2, dword [ecx]
movss xmm1, dword [ecx + 4]
movss xmm0, dword [ecx + 8]
addss xmm2, dword [eax]
addss xmm1, dword [eax + 4]
addss xmm0, dword [eax + 8]
mov eax, dword [0x103390d4]
movss dword [esp + 0x30], xmm2
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x38], xmm0
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov ecx, eax
call fcn.10023020
mov edx, dword [0x103390d4]
movss xmm0, dword [0x102dd9bc]
mov ecx, dword [edx]
mov edi, dword [edx + 0x10]
movss xmm3, dword [ecx + 0x1c]
mov ecx, dword [edx + 0x1c]
movaps xmm1, xmm3
mulss xmm1, dword [eax]
movaps xmm2, xmm3
mulss xmm2, dword [eax + 4]
mulss xmm3, dword [eax + 8]
mov eax, dword [edi]
mulss xmm1, xmm0
mulss xmm2, xmm0
mov esi, dword [eax + 0xc]
mov eax, dword [ecx]
mulss xmm3, xmm0
movss xmm0, dword [esp + 0x30]
mov eax, dword [eax + 0x30]
addss xmm0, xmm1
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x34]
addss xmm0, xmm2
movss dword [esp + 0x58], xmm0
movss xmm0, dword [esp + 0x38]
addss xmm0, xmm3
movss dword [esp + 0x5c], xmm0
call eax
push eax
mov ecx, edi
call esi
mov ecx, dword [0x1033a628]
mov dword [esp + 0x8c], eax
mov eax, dword fs:[0x2c]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0x102dc0fc
mov dword [esp + 0x90], 0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10347e98]
cmp eax, dword [ecx + 4]
jg 0x1014ff5b
mov ecx, dword [0x10347e9c]
mov esi, dword [0x103390d4]
mov dword [esp + 0x24], ecx
call fcn.10138d80
mov eax, dword [esi]
mov esi, dword [0x103390cc]
mov dword [esp + 0x7c], esi
divss xmm0, dword [eax + 0x1c]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x2c], edx
addss xmm0, dword [0x102dd82c]
cvttss2si eax, xmm0
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x14]
add eax, edx
mov dword [esp + 0x78], eax
cmp edx, eax
je 0x1014ff55
mov eax, dword [esi + 0xc]
mov ecx, edx
dec eax
shr ecx, 1
and ecx, eax
mov edi, edx
mov eax, dword [esi + 8]
and edi, 1
mov dword [esp + 0x20], edi
mov eax, dword [eax + ecx*4]
mov dword [esp + 0x1c], eax
mov edx, dword [eax + edi*8]
mov eax, dword [0x103390d4]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov esi, dword [eax + 0xc]
movsx eax, byte [edx + 0xc]
push eax
call esi
test eax, eax
je 0x1014ff3e
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*8]
cmp byte [eax + 1], 0
je 0x1014ff3e
cmp byte [eax], 0
jne 0x1014ff3e
cmp byte [eax + 2], 0
jne 0x1014ff3e
mov esi, dword [eax + 0x4c]
xor cl, cl
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x28]
mov byte [esp + 0xf], cl
mov edi, dword [esi + 0x60]
mov dword [esi + 0x5c], 0
mov dword [esi + 0x60], 0
test edi, edi
je 0x1014f6dd
or eax, 0xffffffff
lock xadd dword [edi + 4], eax
jne 0x1014f6dd
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [edi + 8], eax
jne 0x1014f6dd
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov edi, dword [esp + 0x44]
mov dword [esi + 0x64], 0
mov dword [esi + 0x6c], 0xffffffff
mov dword [esi + 0x70], 0x2000
mov dword [esi + 0x74], 0xffffffff
mov dword [esi + 0x78], 0xffffffff
mov dword [esi + 0x7c], 0xffffffff
mov dword [esi + 0x80], 0
cmp dword [edi + 0x2c], 0
je 0x1014ff3e
lea ecx, [esp + 0x138]
call fcn.10001f80
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + ecx*8]
lea ecx, [esp + 0x138]
mov dword [esp + 0x138], eax
call fcn.10139f10
xor ecx, ecx
mov dword [esp + 0x40], ecx
cmp dword [edi + 0x2c], ecx
jbe 0x1014ff32
movss xmm0, dword [0x102dda34]
addss xmm0, dword [0x102dd9a0]
movss dword [esp + 0x80], xmm0
mov eax, dword [edi + 0x28]
add eax, ecx
mov ecx, dword [edi + 0x24]
dec ecx
and ecx, eax
mov eax, dword [edi + 0x20]
mov edi, dword [eax + ecx*4]
mov ecx, edi
mov dword [esp + 0x74], edi
call fcn.10139ff0
movss xmm2, dword [edi + 0x22c]
xorps xmm0, xmm0
movss xmm1, dword [edi + 0x230]
addss xmm2, xmm0
movss xmm3, dword [esp + 0x30]
addss xmm1, xmm0
movss xmm0, dword [edi + 0x234]
sub esp, 8
addss xmm0, dword [0x102dd9b0]
movss xmm4, dword [esp + 0x40]
subss xmm3, xmm2
movss dword [esp + 0x50], xmm2
movss xmm2, dword [esp + 0x3c]
subss xmm2, xmm1
movss dword [esp + 0x54], xmm1
subss xmm4, xmm0
movss dword [esp + 0x58], xmm0
movaps xmm1, xmm3
movss dword [esp + 0x44], xmm3
mulss xmm1, xmm3
movaps xmm0, xmm2
movss dword [esp + 0x20], xmm2
mulss xmm0, xmm2
movss dword [esp + 0x1c], xmm4
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.100ef450
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
add esp, 8
comiss xmm0, dword [esp + 0x80]
ja 0x1014ff1c
mov eax, dword [0x103390d4]
mov edx, dword [edi]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov esi, dword [eax + 0xc]
movsx eax, byte [edx + 0xc]
push eax
call esi
xorps xmm0, xmm0
movups xmmword [esp + 0xa0], xmm0
mov ecx, dword [eax + 0x670]
mov dword [edi + 0x1a5c], ecx
lea ecx, [edi + 0x404]
mov dword [eax + 0x670], ecx
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x34]
mov dword [esp + 0x104], 0
push eax
lea ecx, [esp + 0xa8]
movups xmmword [esp + 0xe8], xmm0
movups xmmword [esp + 0xf8], xmm0
movups xmmword [esp + 0xb8], xmm0
movups xmmword [esp + 0xc8], xmm0
call fcn.10003f50
mov eax, dword [0x103390d4]
lea edx, [esp + 0xe0]
push edx
lea edx, [esp + 0x8c]
push edx
mov ecx, dword [eax + 0x2c]
lea edx, [esp + 0xa8]
push 0x4600400b
push edx
mov eax, dword [ecx]
call dword [eax + 0x10]
mov eax, dword fs:[0x2c]
mov ecx, dword [esp + 0x84]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x10347fe4]
cmp eax, dword [ecx + 4]
jg 0x1014ff91
lea eax, [esp + 0xe0]
push eax
lea eax, [esp + 0x8c]
push eax
push 0x4600400b
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x40]
push eax
call dword [0x10347fe8]
mov eax, dword [0x103390d4]
add esp, 0x14
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
mov eax, dword [edi]
movsx eax, byte [eax + 0xc]
push eax
call edx
mov ecx, dword [edi + 0x1a5c]
mov dword [eax + 0x670], ecx
mov dword [edi + 0x1a5c], 0
mov ecx, dword [esp + 0x12c]
test ecx, ecx
je 0x1014ff1c
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov esi, eax
test esi, esi
je 0x1014ff1c
mov ecx, dword [esi]
mov edx, dword [ecx + 0x24]
mov ecx, esi
call edx
test eax, eax
jle 0x1014ff1c
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0x24]
call eax
mov ecx, dword [0x103390d4]
mov ecx, dword [ecx]
cmp eax, dword [ecx + 0x14]
jge 0x1014ff1c
movss xmm0, dword [esp + 0x18]
sub esp, 8
movss xmm1, dword [esp + 0x44]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.100ef450
movss xmm0, dword [esp + 0x20]
fstp st(0)
movss xmm1, dword [esp + 0x44]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm1, xmm0
movss xmm0, dword [esp + 0x1c]
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd qword [esp], xmm0
call fcn.100ef450
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
add esp, 8
comiss xmm0, dword [0x102dda08]
jbe 0x1014fa89
movss xmm0, dword [esp + 0x58]
sub esp, 8
movss xmm2, dword [esp + 0x5c]
subss xmm2, dword [esp + 0x50]
subss xmm0, dword [esp + 0x54]
movss xmm1, dword [esp + 0x64]
subss xmm1, dword [esp + 0x58]
mulss xmm2, xmm2
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm2, xmm0
addss xmm2, xmm1
cvtps2pd xmm0, xmm2
movsd qword [esp], xmm0
call fcn.100ef450
movss xmm0, dword [0x102dda08]
add esp, 8
fstp dword [esp + 0x10]
comiss xmm0, dword [esp + 0x10]
ja 0x1014ff1c
movss xmm0, dword [esp + 0x3c]
sub esp, 8
movss xmm1, dword [esp + 0x20]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm1, dword [esp + 0x1c]
mulss xmm1, xmm1
addss xmm0, xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef450
movss xmm0, dword [0x102dda08]
add esp, 8
addss xmm0, dword [0x102dd9a0]
fstp dword [esp + 0x10]
comiss xmm0, dword [esp + 0x10]
jbe 0x1014fc71
mov eax, dword [0x103390d4]
movss xmm0, dword [esp + 0x48]
subss xmm0, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov ecx, dword [eax + 0x10]
movss dword [esp + 0x14], xmm0
mov eax, dword [ecx]
movss xmm0, dword [esp + 0x4c]
subss xmm0, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x20]
movss dword [esp + 0x18], xmm0
mov eax, dword [esi + eax*8]
movsx eax, byte [eax + 0xc]
push eax
call edx
mov ecx, eax
call fcn.10025050
movss xmm0, dword [0x102dd95c]
mov esi, eax
divss xmm0, dword [0x102ddae4]
sub esp, 8
mulss xmm0, dword [esi]
movss dword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef400
movss xmm0, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
fstp dword [esp + 0x74]
movsd qword [esp], xmm0
call fcn.100ef3b0
movss xmm0, dword [0x102dd95c]
divss xmm0, dword [0x102ddae4]
fstp dword [esp + 0x6c]
mulss xmm0, dword [esi + 4]
movss dword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef400
movss xmm0, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
fstp dword [esp + 0x70]
movsd qword [esp], xmm0
call fcn.100ef3b0
movss xmm0, dword [0x102dd95c]
divss xmm0, dword [0x102ddae4]
fstp dword [esp + 0x68]
mulss xmm0, dword [esi + 8]
movss dword [esp + 0x18], xmm0
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef400
movss xmm0, dword [esp + 0x18]
fstp st(0)
cvtps2pd xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ef3b0
movss xmm2, dword [esp + 0x68]
add esp, 8
mulss xmm2, dword [esp + 0x64]
fstp st(0)
movss xmm1, dword [esp + 0x68]
mulss xmm1, dword [esp + 0x64]
movss xmm3, dword [esp + 0x14]
movss xmm0, dword [esp + 0x6c]
xorps xmm0, xmmword [0x102ddfe0]
mulss xmm3, xmm2
movss xmm2, dword [esp + 0x18]
mulss xmm2, xmm1
xorps xmm1, xmm1
mulss xmm0, xmm1
addss xmm3, xmm2
addss xmm3, xmm0
comiss xmm3, dword [0x102dd84c]
jbe 0x1014fc71
movss xmm1, dword [0x102dd944]
mov ecx, dword [esp + 0x24]
mulss xmm1, dword [0x102dda4c]
mov byte [esp + 0xf], 1
mov eax, dword [ecx + 0x24]
movss dword [esp + 0x14], xmm1
or eax, 0x800
jmp 0x1014fcc7
mov dl, byte [esp + 0xf]
movss xmm1, dword [0x102dda4c]
movss dword [esp + 0x14], xmm1
test dl, dl
jne 0x1014fcb2
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + eax*8]
movd xmm0, dword [eax + 8]
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jb 0x1014fcb2
mov ecx, dword [esp + 0x24]
mov byte [esp + 0xf], 1
mov eax, dword [ecx + 0x24]
or eax, 0x800
jmp 0x1014fcc7
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x24]
test dl, dl
je 0x1014fcc4
or eax, 0x800
jmp 0x1014fcc7
or eax, 1
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x1c]
mov dword [ecx + 0x24], eax
mov eax, dword [esi + edx*8 + 4]
test eax, eax
je 0x1014fcde
lock inc dword [eax + 4]
mov ecx, dword [esi + edx*8 + 4]
mov eax, dword [esi + edx*8]
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 0x60]
mov dword [edx + 0x5c], eax
mov dword [edx + 0x60], ecx
test esi, esi
je 0x1014fd1b
or eax, 0xffffffff
lock xadd dword [esi + 4], eax
jne 0x1014fd1b
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
or eax, 0xffffffff
lock xadd dword [esi + 8], eax
jne 0x1014fd17
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [esp + 0x28]
cmp byte [esp + 0xf], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov dword [edx + 0x78], 0x14
mov eax, dword [ecx + eax*8]
movsx eax, byte [eax + 0xc]
mov dword [edx + 0x6c], eax
je 0x1014fd43
movss xmm0, dword [esp + 0x14]
jmp 0x1014fd4b
movss xmm0, dword [0x102dd9f8]
mov esi, dword [esp + 0x44]
cvttss2si eax, xmm0
mov dword [edx + 0x7c], eax
mov ecx, dword [esi + 0x28]
mov eax, dword [esi + 0x24]
add ecx, dword [esp + 0x40]
dec eax
and ecx, eax
mov eax, dword [esi + 0x20]
mov eax, dword [eax + ecx*4]
mov dword [edx + 0x64], eax
mov eax, dword [0x103390d4]
movss xmm0, dword [edi + 0x64]
mov ecx, dword [esp + 0x24]
mov eax, dword [eax]
divss xmm0, dword [eax + 0x1c]
addss xmm0, dword [0x102dd82c]
cvttss2si eax, xmm0
add eax, dword [esp + 0x70]
mov dword [ecx + 8], eax
mov eax, dword [0x103390d4]
mov edi, dword [eax + 0x10]
mov ecx, dword [eax + 0x1c]
mov edx, dword [edi]
mov eax, dword [ecx]
mov esi, dword [edx + 0xc]
mov eax, dword [eax + 0x30]
call eax
push eax
mov ecx, edi
call esi
mov edi, eax
mov ecx, edi
call fcn.10024890
mov ecx, dword [edi]
mov esi, eax
mov edx, dword [ecx + 0x24]
mov ecx, edi
call edx
movss xmm0, dword [esi]
mov ecx, edi
addss xmm0, dword [eax]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esi + 4]
addss xmm0, dword [eax + 4]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esi + 8]
addss xmm0, dword [eax + 8]
movss dword [esp + 0x18], xmm0
call fcn.10023020
mov ecx, dword [0x103390d4]
mov ecx, dword [ecx]
push ecx
movss xmm4, dword [ecx + 0x1c]
lea ecx, [esp + 0x98]
movaps xmm0, xmm4
movaps xmm3, xmm4
mulss xmm0, dword [eax]
mulss xmm3, dword [eax + 4]
mulss xmm4, dword [eax + 8]
mov eax, dword [esp + 0x78]
addss xmm0, dword [esp + 0x14]
addss xmm3, dword [esp + 0x18]
addss xmm4, dword [esp + 0x1c]
movss xmm2, dword [eax + 0x22c]
movss xmm1, dword [eax + 0x230]
subss xmm2, xmm0
movss xmm0, dword [eax + 0x234]
subss xmm1, xmm3
subss xmm0, xmm4
lea eax, [esp + 0xd8]
push eax
movss dword [esp + 0x9c], xmm2
movss dword [esp + 0xa0], xmm1
movss dword [esp + 0xa4], xmm0
call fcn.101ca3e0
movss xmm5, dword [0x102ddc08]
movss xmm3, dword [0x102ddb40]
movss xmm2, dword [eax]
movss xmm0, dword [eax + 4]
movss xmm1, dword [eax + 8]
comiss xmm5, xmm2
jbe 0x1014feb0
addss xmm2, xmm3
comiss xmm5, xmm2
ja 0x1014fea7
movss xmm4, dword [0x102ddae4]
comiss xmm2, xmm4
jbe 0x1014fec9
nop dword [eax]
subss xmm2, xmm3
comiss xmm2, xmm4
ja 0x1014fec0
comiss xmm5, xmm0
jbe 0x1014fed9
nop
addss xmm0, xmm3
comiss xmm5, xmm0
ja 0x1014fed0
comiss xmm0, xmm4
jbe 0x1014fee9
nop
subss xmm0, xmm3
comiss xmm0, xmm4
ja 0x1014fee0
comiss xmm5, xmm1
jbe 0x1014fef9
nop
addss xmm1, xmm3
comiss xmm5, xmm1
ja 0x1014fef0
comiss xmm1, xmm4
jbe 0x1014ff09
nop
subss xmm1, xmm3
comiss xmm1, xmm4
ja 0x1014ff00
mov eax, dword [esp + 0x24]
movss dword [eax + 0xc], xmm2
movss dword [eax + 0x10], xmm0
movss dword [eax + 0x14], xmm1
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
inc ecx
mov dword [esp + 0x40], ecx
cmp ecx, dword [edi + 0x2c]
jb 0x1014f771
lea ecx, [esp + 0x138]
call fcn.10139ff0
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x7c]
inc edx
mov dword [esp + 0x2c], edx
cmp edx, dword [esp + 0x78]
jne 0x1014f636
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x10347e98
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e98], 0xffffffff
jne 0x1014f5e8
push 0x10347e98
mov dword [0x10347e9c], 0
call fcn.100c3a51
add esp, 4
jmp 0x1014f5e8
push 0x10347fe4
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347fe4], 0xffffffff
jne 0x1014f907
push str.81_EC_____________8B_84_24_____________8B_48_2C
push str.client.dll
call fcn.101cc210
push 0x10347fe4
mov dword [0x10347fe8], eax
call fcn.100c3a51
add esp, 4
jmp 0x1014f907