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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x2c
mov ebp, ecx
mov dword [esp + 8], edx
mov dword [esp], eax
mov esi, dword [ebp + 0x6ce0]
mov ebx, dword [ebp + 0x6ce8]
cmp dword [ebp + 0x2448], 0
lea edi, [esi + ebx]
je 0x470f2b
lea eax, [ebp + 0x244c]
push eax
push dword [esp + 0xc]
push dword [esp + 8]
call fcn.004853e0
add esp, 0xc
cmp dword [esp + 8], 0
jne 0x470f58
mov eax, dword [ebp + 0x2438]
add eax, 0xf
mov esi, dword [ebp + 0x4b98]
and eax, 0xf
mov dword [ebp + 0x2438], eax
lea eax, [ebp + 0x2420]
mov dword [ebp + 0x4b9c], esi
jmp 0x470f68
lea edi, [esi + ebx + 2]
mov esi, dword [ebp + 0x4b9c]
lea eax, [ebp + 0x2428]
mov ecx, dword [ebp + 0x2438]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], ecx
lea edx, [ecx + 1]
mov dword [esp + 0x10], edx
lea edx, [ecx*4]
mov dword [esp + 4], edx
lea edx, [ebx + ecx*4]
test cl, 1
je 0x470f9d
mov ecx, dword [esp + 0x10]
and ecx, 0xf
lea ecx, [eax + ecx*4]
jmp 0x470fb1
mov ecx, dword [esp + 0x10]
mov ebx, eax
mov dword [esp + 0xc], ecx
mov ecx, edx
mov edx, dword [esp + 4]
lea edx, [eax + edx + 4]
push dword [esp]
push edx
push ecx
call fcn.00485420
add esp, 0xc
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x2444]
movss xmm2, dword [0x4ca450]
movss xmm1, dword [0x4ca454]
lea edx, [eax*4]
sub ecx, edx
add ecx, 0x40
mov dword [esp + 0x24], ecx
xor ecx, ecx
mov edx, dword [ebp + 0x4ba0]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], ebp
mov ebx, dword [esp + 0x24]
lea eax, [esi + edx]
mov dword [esp + 0x10], edi
mov esi, eax
lea ebp, [ebx + 0x40]
mov dword [esp + 4], ebp
cmp eax, 0x8000
jge 0x471021
add dword [esp + 0x1c], 0x40
jmp 0x47129f
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
movss xmm0, dword [ebx]
movss xmm3, dword [ebx + 4]
mulss xmm0, dword [edx]
mulss xmm3, dword [edx + 4]
movss xmm4, dword [ebx + 8]
subss xmm0, xmm3
mulss xmm4, dword [edx + 8]
movss xmm5, dword [ebx + 0xc]
addss xmm0, xmm4
mulss xmm5, dword [edx + 0xc]
movss xmm6, dword [ebx + 0x10]
subss xmm0, xmm5
mulss xmm6, dword [edx + 0x10]
movss xmm7, dword [ebx + 0x14]
addss xmm0, xmm6
mulss xmm7, dword [edx + 0x14]
movss xmm3, dword [ebx + 0x18]
subss xmm0, xmm7
mulss xmm3, dword [edx + 0x18]
movss xmm4, dword [ebx + 0x1c]
addss xmm0, xmm3
mulss xmm4, dword [edx + 0x1c]
movss xmm5, dword [ebx + 0x20]
subss xmm0, xmm4
mulss xmm5, dword [edx + 0x20]
movss xmm6, dword [ebx + 0x24]
addss xmm0, xmm5
mulss xmm6, dword [edx + 0x24]
movss xmm3, dword [ebx + 0x28]
subss xmm0, xmm6
mulss xmm3, dword [edx + 0x28]
movss xmm4, dword [ebx + 0x2c]
addss xmm0, xmm3
mulss xmm4, dword [edx + 0x2c]
movss xmm5, dword [ebx + 0x30]
subss xmm0, xmm4
mulss xmm5, dword [edx + 0x30]
movss xmm7, dword [ebx + 0x34]
addss xmm0, xmm5
mulss xmm7, dword [edx + 0x34]
movss xmm3, dword [ebx + 0x38]
subss xmm0, xmm7
mulss xmm3, dword [edx + 0x38]
movss xmm4, dword [ebx + 0x3c]
add ebx, 0x40
mulss xmm4, dword [edx + 0x3c]
addss xmm0, xmm3
mov dword [esp + 0x1c], ebx
mov ebx, eax
shr ebx, 0x10
subss xmm0, xmm4
comiss xmm0, xmm2
jbe 0x47119b
test ebx, ebx
je 0x471868
xor edx, edx
mov ebp, 0x7fff
xor esi, esi
mov word [edi + edx*8], bp
inc ecx
mov word [edi + edx*8 + 4], bp
inc edx
inc esi
cmp edx, ebx
jb 0x471129
add ecx, esi
mov esi, edx
shl esi, 0x10
lea edi, [edi + edx*8]
neg esi
lea ebx, [edx + edx + 1]
add esi, eax
cdq
mov dword [esp], edi
mov edi, edx
mov dword [esp + 0x14], esi
mov esi, eax
shl edi, 0x11
lea ebp, [ebx - 1]
shr esi, 0xf
or edi, esi
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov esi, dword [esp + 0x14]
sbb ebp, edx
mov edi, dword [esp]
jae 0x471295
mov edx, dword [esp + 0x10]
mov esi, 0x7fff
inc ecx
mov word [edx + ebx*4 - 4], si
mov esi, ebx
shl esi, 0xf
lea edi, [edx + ebx*4]
neg esi
add esi, eax
jmp 0x471295
comiss xmm1, xmm0
jbe 0x471224
test ebx, ebx
je 0x471872
xor edx, edx
mov ebp, 0xffff8000
xor esi, esi
mov word [edi + edx*8], bp
inc ecx
mov word [edi + edx*8 + 4], bp
inc edx
inc esi
cmp edx, ebx
jb 0x4711b5
add ecx, esi
mov esi, edx
shl esi, 0x10
lea edi, [edi + edx*8]
neg esi
lea ebx, [edx + edx + 1]
add esi, eax
cdq
mov dword [esp], edi
mov edi, edx
mov dword [esp + 0x14], esi
mov esi, eax
shl edi, 0x11
lea ebp, [ebx - 1]
shr esi, 0xf
or edi, esi
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov esi, dword [esp + 0x14]
sbb ebp, edx
mov edi, dword [esp]
jae 0x471295
mov edx, dword [esp + 0x10]
mov esi, 0xffff8000
inc ecx
mov word [edx + ebx*4 - 4], si
mov esi, ebx
shl esi, 0xf
lea edi, [edx + ebx*4]
neg esi
add esi, eax
jmp 0x471295
test ebx, ebx
je 0x4718c1
cvttss2si edx, xmm0
xor ebp, ebp
mov word [edi + ebp*8], dx
mov word [edi + ebp*8 + 4], dx
inc ebp
cmp ebp, ebx
jb 0x471232
mov esi, ebp
lea edi, [edi + ebp*8]
shl esi, 0x10
lea ebx, [ebp + ebp + 1]
neg esi
add esi, eax
cdq
mov dword [esp], edi
mov edi, edx
mov dword [esp + 0x14], esi
mov esi, eax
shl edi, 0x11
lea ebp, [ebx - 1]
shr esi, 0xf
or edi, esi
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov esi, dword [esp + 0x14]
sbb ebp, edx
mov edi, dword [esp]
jae 0x471295
cvttss2si esi, xmm0
mov edx, dword [esp + 0x10]
mov word [edx + ebx*4 - 4], si
mov esi, ebx
shl esi, 0xf
lea edi, [edx + ebx*4]
neg esi
add esi, eax
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0x4ba0]
mov ebx, dword [esp + 0x20]
inc ebx
add dword [esp + 0x24], 0x80
mov dword [esp + 0x20], ebx
cmp ebx, 0x10
jb 0x470ffc
add esi, edx
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x10], esi
cmp esi, 0x8000
jl 0x47154c
movss xmm0, dword [ebx]
movss xmm3, dword [ebx + 8]
mulss xmm0, dword [eax + 0x40]
mulss xmm3, dword [eax + 0x48]
movss xmm4, dword [ebx + 0x10]
addss xmm0, xmm3
mulss xmm4, dword [eax + 0x50]
movss xmm5, dword [ebx + 0x18]
addss xmm0, xmm4
mulss xmm5, dword [eax + 0x58]
movss xmm6, dword [ebx + 0x20]
addss xmm0, xmm5
mulss xmm6, dword [eax + 0x60]
movss xmm7, dword [ebx + 0x28]
addss xmm0, xmm6
mulss xmm7, dword [eax + 0x68]
movss xmm3, dword [ebx + 0x30]
addss xmm0, xmm7
mulss xmm3, dword [eax + 0x70]
movss xmm4, dword [ebx + 0x38]
addss xmm0, xmm3
mulss xmm4, dword [eax + 0x78]
mov dword [esp], edi
addss xmm0, xmm4
comiss xmm0, xmm2
jbe 0x4713fd
mov edx, esi
shr edx, 0x10
mov dword [esp + 4], edx
je 0x47187c
xor eax, eax
mov dword [esp + 0x14], esi
xor edx, edx
mov dword [esp + 0x18], ebp
mov ebp, 0x7fff
mov esi, dword [esp + 4]
mov word [edi + eax*8], bp
inc ecx
mov word [edi + eax*8 + 4], bp
inc eax
inc edx
cmp eax, esi
jb 0x471372
add ecx, edx
mov edx, eax
shl edx, 0x10
lea edi, [edi + eax*8]
neg edx
mov esi, dword [esp + 0x14]
add esi, edx
lea edx, [eax + eax + 1]
mov ebp, dword [esp + 0x18]
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
lea ebx, [edx - 1]
cdq
mov esi, edx
shl esi, 0x11
shr eax, 0xf
or esi, eax
shr edx, 0xf
sub ebx, esi
mov ebx, 0
mov esi, dword [esp + 0x14]
sbb ebx, edx
mov ebx, dword [esp + 0x1c]
jae 0x47154c
mov esi, dword [esp]
mov edi, 0x7fff
mov edx, dword [esp + 4]
inc ecx
mov word [esi + edx*4 - 4], di
lea edi, [esi + edx*4]
shl edx, 0xf
neg edx
mov esi, dword [esp + 0x10]
add esi, edx
jmp 0x47154c
comiss xmm1, xmm0
jbe 0x4714b5
mov edx, esi
shr edx, 0x10
mov dword [esp + 4], edx
je 0x471889
xor eax, eax
mov dword [esp + 0x14], esi
xor edx, edx
mov dword [esp + 0x18], ebp
mov ebp, 0xffff8000
mov esi, dword [esp + 4]
mov word [edi + eax*8], bp
inc ecx
mov word [edi + eax*8 + 4], bp
inc eax
inc edx
cmp eax, esi
jb 0x47142a
add ecx, edx
mov edx, eax
shl edx, 0x10
lea edi, [edi + eax*8]
neg edx
mov esi, dword [esp + 0x14]
add esi, edx
lea edx, [eax + eax + 1]
mov ebp, dword [esp + 0x18]
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
lea ebx, [edx - 1]
cdq
mov esi, edx
shl esi, 0x11
shr eax, 0xf
or esi, eax
shr edx, 0xf
sub ebx, esi
mov ebx, 0
mov esi, dword [esp + 0x14]
sbb ebx, edx
mov ebx, dword [esp + 0x1c]
jae 0x47154c
mov esi, dword [esp]
mov edi, 0xffff8000
mov edx, dword [esp + 4]
inc ecx
mov word [esi + edx*4 - 4], di
lea edi, [esi + edx*4]
shl edx, 0xf
neg edx
mov esi, dword [esp + 0x10]
add esi, edx
jmp 0x47154c
mov edx, esi
shr edx, 0x10
mov dword [esp + 4], edx
je 0x471896
cvttss2si eax, xmm0
xor edx, edx
mov dword [esp + 0x18], ebp
mov ebp, eax
mov eax, dword [esp + 4]
mov word [edi + edx*8], bp
mov word [edi + edx*8 + 4], bp
inc edx
cmp edx, eax
jb 0x4714d4
mov eax, edx
lea edi, [edi + edx*8]
shl eax, 0x10
lea edx, [edx + edx + 1]
neg eax
mov ebp, dword [esp + 0x18]
add esi, eax
mov dword [esp + 4], edx
mov edx, dword [esp + 4]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
lea ebx, [edx - 1]
cdq
mov esi, edx
shl esi, 0x11
shr eax, 0xf
or esi, eax
shr edx, 0xf
sub ebx, esi
mov ebx, 0
mov esi, dword [esp + 0x14]
sbb ebx, edx
mov ebx, dword [esp + 0x1c]
jae 0x47154c
cvttss2si edi, xmm0
mov esi, dword [esp]
mov edx, dword [esp + 4]
mov word [esi + edx*4 - 4], di
lea edi, [esi + edx*4]
shl edx, 0xf
neg edx
mov esi, dword [esp + 0x10]
add esi, edx
mov edx, dword [esp + 0x24]
add ebx, 0xffffffc0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebp
lea edx, [edx + eax*8 - 0x80]
xor eax, eax
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
add esi, dword [ebx + 0x4ba0]
mov eax, esi
cmp esi, 0x8000
jge 0x47158d
lea edx, [edx - 0x40]
mov dword [esp + 0x24], edx
jmp 0x471810
mov ebp, dword [esp + 0x1c]
lea ebx, [edx - 0x40]
movss xmm0, dword [edx - 4]
xorps xmm0, xmmword [0x4ca440]
movss xmm3, dword [ebp + 4]
mulss xmm0, dword [ebp]
mulss xmm3, dword [edx - 8]
movss xmm4, dword [ebp + 8]
subss xmm0, xmm3
mulss xmm4, dword [edx - 0xc]
movss xmm5, dword [ebp + 0xc]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x10]
movss xmm6, dword [ebp + 0x10]
subss xmm0, xmm5
mulss xmm6, dword [edx - 0x14]
movss xmm7, dword [ebp + 0x14]
subss xmm0, xmm6
mulss xmm7, dword [edx - 0x18]
movss xmm3, dword [ebp + 0x18]
subss xmm0, xmm7
mulss xmm3, dword [edx - 0x1c]
movss xmm4, dword [ebp + 0x1c]
subss xmm0, xmm3
mulss xmm4, dword [edx - 0x20]
movss xmm5, dword [ebp + 0x20]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x24]
movss xmm6, dword [ebp + 0x24]
subss xmm0, xmm5
mulss xmm6, dword [edx - 0x28]
movss xmm3, dword [ebp + 0x28]
subss xmm0, xmm6
mulss xmm3, dword [edx - 0x2c]
movss xmm4, dword [ebp + 0x2c]
subss xmm0, xmm3
mulss xmm4, dword [edx - 0x30]
movss xmm5, dword [ebp + 0x30]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x34]
movss xmm7, dword [ebp + 0x34]
subss xmm0, xmm5
mulss xmm7, dword [edx - 0x38]
movss xmm3, dword [ebp + 0x38]
subss xmm0, xmm7
mulss xmm3, dword [edx - 0x3c]
movss xmm4, dword [ebp + 0x3c]
subss xmm0, xmm3
mulss xmm4, dword [ebx]
mov dword [esp + 0x24], ebx
subss xmm0, xmm4
comiss xmm0, xmm2
jbe 0x47170e
mov ebx, esi
shr ebx, 0x10
je 0x4718a3
xor ebp, ebp
mov dword [esp + 0x14], esi
xor edx, edx
mov esi, 0x7fff
mov word [edi + ebp*8], si
inc ecx
mov word [edi + ebp*8 + 4], si
inc ebp
inc edx
cmp ebp, ebx
jb 0x47169b
add ecx, edx
mov edx, ebp
shl edx, 0x10
lea edi, [edi + ebp*8]
neg edx
lea ebp, [ebp + ebp + 1]
mov esi, dword [esp + 0x14]
add esi, edx
cdq
mov dword [esp + 4], ebp
lea ebx, [ebp - 1]
mov ebp, edx
mov dword [esp], eax
shl ebp, 0x11
shr eax, 0xf
or ebp, eax
shr edx, 0xf
sub ebx, ebp
mov ebx, 0
mov ebp, dword [esp + 4]
sbb ebx, edx
mov eax, dword [esp]
jae 0x471810
mov ebx, dword [esp + 0x28]
mov edx, 0x7fff
inc ecx
mov word [ebx + ebp*4 - 4], dx
lea edi, [ebx + ebp*4]
shl ebp, 0xf
neg ebp
lea esi, [eax + ebp]
jmp 0x471810
comiss xmm1, xmm0
jbe 0x47179f
mov ebx, esi
shr ebx, 0x10
je 0x4718ad
xor ebp, ebp
mov dword [esp + 0x14], esi
xor edx, edx
mov esi, 0xffff8000
mov word [edi + ebp*8], si
inc ecx
mov word [edi + ebp*8 + 4], si
inc ebp
inc edx
cmp ebp, ebx
jb 0x47172f
add ecx, edx
mov edx, ebp
shl edx, 0x10
lea edi, [edi + ebp*8]
neg edx
lea ebp, [ebp + ebp + 1]
mov esi, dword [esp + 0x14]
add esi, edx
cdq
mov dword [esp + 0xc], ebp
lea ebx, [ebp - 1]
mov ebp, edx
mov dword [esp], eax
shl ebp, 0x11
shr eax, 0xf
or ebp, eax
shr edx, 0xf
sub ebx, ebp
mov ebx, 0
mov ebp, dword [esp + 0xc]
sbb ebx, edx
mov eax, dword [esp]
jae 0x471810
mov ebx, dword [esp + 0x28]
mov edx, 0xffff8000
inc ecx
mov word [ebx + ebp*4 - 4], dx
lea edi, [ebx + ebp*4]
shl ebp, 0xf
neg ebp
lea esi, [eax + ebp]
jmp 0x471810
mov ebp, esi
shr ebp, 0x10
je 0x4718b7
cvttss2si ebx, xmm0
xor edx, edx
mov word [edi + edx*8], bx
mov word [edi + edx*8 + 4], bx
inc edx
cmp edx, ebp
jb 0x4717b0
mov ebx, edx
lea edi, [edi + edx*8]
shl ebx, 0x10
lea ebp, [edx + edx + 1]
neg ebx
add esi, ebx
cdq
mov dword [esp + 0x10], ebp
lea ebx, [ebp - 1]
mov ebp, edx
mov dword [esp], eax
shl ebp, 0x11
shr eax, 0xf
or ebp, eax
shr edx, 0xf
sub ebx, ebp
mov ebx, 0
mov ebp, dword [esp + 0x10]
sbb ebx, edx
mov eax, dword [esp]
jae 0x471810
cvttss2si edx, xmm0
mov ebx, dword [esp + 0x28]
mov word [ebx + ebp*4 - 4], dx
lea edi, [ebx + ebp*4]
shl ebp, 0xf
neg ebp
lea esi, [eax + ebp]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
inc ebx
add dword [esp + 0x1c], 0xffffffc0
lea edx, [edx - 0x40]
mov dword [esp + 0x20], ebx
cmp ebx, 0xf
jb 0x471569
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x18]
cmp dword [esp + 0x4c], 0
mov dword [ebp + edx*4 + 0x4b98], esi
je 0x47185e
mov ebx, edx
mov edx, 2
test ebx, ebx
cmovne ebx, edx
sub edi, ebx
sub edi, dword [ebp + 0x6ce0]
mov dword [ebp + 0x6ce8], edi
mov eax, ecx
add esp, 0x2c
pop ebp
pop ebx
pop edi
pop esi
ret
mov ebx, 1
jmp 0x47114b
mov ebx, 1
jmp 0x4711d7
mov dword [esp + 4], 1
jmp 0x4713a0
mov dword [esp + 4], 1
jmp 0x471458
mov dword [esp + 4], 1
jmp 0x4714fa
mov ebp, 1
jmp 0x4716c1
mov ebp, 1
jmp 0x471755
mov ebp, 1
jmp 0x4717ce
mov ebx, 1
jmp 0x471250