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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x30
mov esi, ecx
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov edi, dword [esi + 0x6ce0]
mov ebp, dword [esi + 0x6ce8]
cmp dword [esi + 0x2448], 0
lea ebx, [edi + ebp]
je 0x47c52b
lea eax, [esi + 0x244c]
push eax
push dword [esp + 0x10]
push dword [esp + 8]
call fcn.004853e0
add esp, 0xc
cmp dword [esp + 0xc], 0
jne 0x47c558
mov eax, dword [esi + 0x2438]
add eax, 0xf
mov ebp, dword [esi + 0x4b98]
and eax, 0xf
mov dword [esi + 0x2438], eax
lea eax, [esi + 0x2420]
mov dword [esi + 0x4b9c], ebp
jmp 0x47c568
lea ebx, [edi + ebp + 4]
mov ebp, dword [esi + 0x4b9c]
lea eax, [esi + 0x2428]
mov ecx, dword [esi + 0x2438]
mov edi, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x10], ecx
lea edx, [ecx + 1]
mov dword [esp + 8], edx
lea edx, [ecx*4]
mov dword [esp + 4], edx
lea edx, [edi + ecx*4]
test cl, 1
je 0x47c59d
mov ecx, dword [esp + 8]
and ecx, 0xf
lea ecx, [eax + ecx*4]
jmp 0x47c5b1
mov ecx, dword [esp + 8]
mov edi, eax
mov dword [esp + 0x10], 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 + 0x10]
mov ecx, dword [esi + 0x2444]
movss xmm3, dword [0x4ca4a0]
movsd xmm2, qword [0x4ca490]
lea edx, [eax*4]
sub ecx, edx
add ecx, 0x40
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov edx, dword [esi + 0x4ba0]
movsd xmm1, qword [0x4ca498]
mov dword [esp + 0x20], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x28]
lea eax, [ebp + edx]
mov dword [esp + 0x14], ebx
mov ebp, eax
lea edi, [esi + 0x40]
mov dword [esp + 8], edi
cmp eax, 0x8000
jge 0x47c62a
add dword [esp + 0x20], 0x40
jmp 0x47c8d5
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
movss xmm0, dword [esi]
movss xmm4, dword [esi + 4]
mulss xmm0, dword [edx]
mulss xmm4, dword [edx + 4]
movss xmm5, dword [esi + 8]
subss xmm0, xmm4
mulss xmm5, dword [edx + 8]
movss xmm6, dword [esi + 0xc]
addss xmm0, xmm5
mulss xmm6, dword [edx + 0xc]
movss xmm7, dword [esi + 0x10]
subss xmm0, xmm6
mulss xmm7, dword [edx + 0x10]
movss xmm4, dword [esi + 0x14]
addss xmm0, xmm7
mulss xmm4, dword [edx + 0x14]
movss xmm5, dword [esi + 0x18]
subss xmm0, xmm4
mulss xmm5, dword [edx + 0x18]
movss xmm6, dword [esi + 0x1c]
addss xmm0, xmm5
mulss xmm6, dword [edx + 0x1c]
movss xmm4, dword [esi + 0x20]
subss xmm0, xmm6
mulss xmm4, dword [edx + 0x20]
movss xmm5, dword [esi + 0x24]
addss xmm0, xmm4
mulss xmm5, dword [edx + 0x24]
movss xmm7, dword [esi + 0x28]
subss xmm0, xmm5
mulss xmm7, dword [edx + 0x28]
movss xmm4, dword [esi + 0x2c]
addss xmm0, xmm7
mulss xmm4, dword [edx + 0x2c]
movss xmm5, dword [esi + 0x30]
subss xmm0, xmm4
mulss xmm5, dword [edx + 0x30]
movss xmm6, dword [esi + 0x34]
addss xmm0, xmm5
mulss xmm6, dword [edx + 0x34]
movss xmm4, dword [esi + 0x38]
subss xmm0, xmm6
mulss xmm4, dword [edx + 0x38]
movss xmm5, dword [esi + 0x3c]
add esi, 0x40
mulss xmm5, dword [edx + 0x3c]
addss xmm0, xmm4
mov dword [esp + 0x20], esi
mov esi, eax
shr esi, 0x10
subss xmm0, xmm5
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x47c7ba
test esi, esi
je 0x47cef9
xor edx, edx
xor ebp, ebp
mov dword [esp], eax
xor edi, edi
mov eax, 0x7fffffff
inc edx
inc ecx
mov dword [edi + ebx], eax
inc ebp
mov dword [edi + ebx + 8], eax
add edi, 0x10
cmp edx, esi
jb 0x47c740
add ecx, ebp
mov ebp, edx
shl ebp, 0x10
mov esi, edx
shl esi, 4
neg ebp
mov eax, dword [esp]
add ebp, eax
add ebx, esi
lea esi, [edx + edx + 1]
cdq
mov dword [esp + 0x1c], ebp
mov edi, edx
mov ebp, eax
shl edi, 0x11
shr ebp, 0xf
mov dword [esp + 4], ebx
lea ebx, [esi - 1]
or edi, ebp
shr edx, 0xf
sub ebx, edi
mov ebx, 0
mov ebp, dword [esp + 0x1c]
sbb ebx, edx
mov ebx, dword [esp + 4]
jae 0x47c8cb
mov ebp, esi
inc ecx
mov edx, dword [esp + 0x14]
shl ebp, 0xf
neg ebp
mov dword [edx + esi*8 - 8], 0x7fffffff
add ebp, eax
lea ebx, [edx + esi*8]
jmp 0x47c8cb
comisd xmm1, xmm0
jbe 0x47c851
test esi, esi
je 0x47cf03
xor edx, edx
xor ebp, ebp
mov dword [esp], eax
xor edi, edi
mov eax, 0x80000000
inc edx
inc ecx
mov dword [edi + ebx], eax
inc ebp
mov dword [edi + ebx + 8], eax
add edi, 0x10
cmp edx, esi
jb 0x47c7da
add ecx, ebp
mov ebp, edx
shl ebp, 0x10
mov esi, edx
shl esi, 4
neg ebp
mov eax, dword [esp]
add ebp, eax
add ebx, esi
lea esi, [edx + edx + 1]
cdq
mov dword [esp + 0x1c], ebp
mov edi, edx
mov ebp, eax
shl edi, 0x11
shr ebp, 0xf
mov dword [esp + 4], ebx
lea ebx, [esi - 1]
or edi, ebp
shr edx, 0xf
sub ebx, edi
mov ebx, 0
mov ebp, dword [esp + 0x1c]
sbb ebx, edx
mov ebx, dword [esp + 4]
jae 0x47c8cb
mov ebp, esi
inc ecx
mov edx, dword [esp + 0x14]
shl ebp, 0xf
neg ebp
mov dword [edx + esi*8 - 8], 0x80000000
add ebp, eax
lea ebx, [edx + esi*8]
jmp 0x47c8cb
test esi, esi
je 0x47cf4f
xor edx, edx
cvttsd2si edi, xmm0
xor ebp, ebp
inc edx
mov dword [ebp + ebx], edi
mov dword [ebp + ebx + 8], edi
add ebp, 0x10
cmp edx, esi
jb 0x47c861
mov ebp, edx
mov esi, edx
shl ebp, 0x10
shl esi, 4
neg ebp
add ebp, eax
add ebx, esi
lea esi, [edx + edx + 1]
cdq
mov dword [esp + 0x1c], ebp
mov edi, edx
mov ebp, eax
shl edi, 0x11
shr ebp, 0xf
mov dword [esp + 4], ebx
lea ebx, [esi - 1]
or edi, ebp
shr edx, 0xf
sub ebx, edi
mov ebx, 0
mov ebp, dword [esp + 0x1c]
sbb ebx, edx
mov ebx, dword [esp + 4]
jae 0x47c8cb
cvttsd2si ebp, xmm0
mov edx, dword [esp + 0x14]
mov dword [edx + esi*8 - 8], ebp
mov ebp, esi
shl ebp, 0xf
lea ebx, [edx + esi*8]
neg ebp
add ebp, eax
mov edx, dword [esp + 0x24]
mov edx, dword [edx + 0x4ba0]
mov esi, dword [esp + 0x18]
inc esi
add dword [esp + 0x28], 0x80
mov dword [esp + 0x18], esi
cmp esi, 0x10
jb 0x47c604
add ebp, edx
mov edi, dword [esp + 0x20]
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x14], ebp
cmp ebp, 0x8000
jl 0x47cbb0
movss xmm0, dword [edi]
movss xmm4, dword [edi + 8]
mulss xmm0, dword [eax + 0x40]
mulss xmm4, dword [eax + 0x48]
movss xmm5, dword [edi + 0x10]
addss xmm0, xmm4
mulss xmm5, dword [eax + 0x50]
movss xmm6, dword [edi + 0x18]
addss xmm0, xmm5
mulss xmm6, dword [eax + 0x58]
movss xmm7, dword [edi + 0x20]
addss xmm0, xmm6
mulss xmm7, dword [eax + 0x60]
movss xmm4, dword [edi + 0x28]
addss xmm0, xmm7
mulss xmm4, dword [eax + 0x68]
movss xmm5, dword [edi + 0x30]
addss xmm0, xmm4
mulss xmm5, dword [eax + 0x70]
movss xmm6, dword [edi + 0x38]
addss xmm0, xmm5
mulss xmm6, dword [eax + 0x78]
mov dword [esp + 4], ebx
addss xmm0, xmm6
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x47ca46
mov edx, ebp
shr edx, 0x10
mov dword [esp], edx
je 0x47cf0d
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ebp
mov ebp, 0x7fffffff
mov esi, edx
mov edi, dword [esp]
inc eax
inc ecx
mov dword [esi + ebx], ebp
inc edx
mov dword [esi + ebx + 8], ebp
add esi, 0x10
cmp eax, edi
jb 0x47c9b6
add ecx, edx
mov edx, eax
shl edx, 4
add ebx, edx
mov edx, eax
shl edx, 0x10
neg edx
mov ebp, dword [esp + 0x1c]
add ebp, edx
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [esp], edx
mov edx, dword [esp]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
lea ebp, [edx - 1]
cdq
mov edi, edx
shl edi, 0x11
shr eax, 0xf
or edi, eax
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov edi, dword [esp + 0x20]
sbb ebp, edx
mov ebp, dword [esp + 0x1c]
jae 0x47cbb0
mov ebx, dword [esp + 4]
inc ecx
mov ebp, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [ebx + ebp*8 - 8], 0x7fffffff
lea ebx, [ebx + ebp*8]
shl ebp, 0xf
neg ebp
add ebp, edx
jmp 0x47cbb0
comisd xmm1, xmm0
jbe 0x47cb08
mov edx, ebp
shr edx, 0x10
mov dword [esp], edx
je 0x47cf19
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x1c], ebp
mov ebp, 0x80000000
mov esi, edx
mov edi, dword [esp]
inc eax
inc ecx
mov dword [esi + ebx], ebp
inc edx
mov dword [esi + ebx + 8], ebp
add esi, 0x10
cmp eax, edi
jb 0x47ca78
add ecx, edx
mov edx, eax
shl edx, 4
add ebx, edx
mov edx, eax
shl edx, 0x10
neg edx
mov ebp, dword [esp + 0x1c]
add ebp, edx
lea edx, [eax + eax + 1]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
mov dword [esp], edx
mov edx, dword [esp]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
lea ebp, [edx - 1]
cdq
mov edi, edx
shl edi, 0x11
shr eax, 0xf
or edi, eax
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov edi, dword [esp + 0x20]
sbb ebp, edx
mov ebp, dword [esp + 0x1c]
jae 0x47cbb0
mov ebx, dword [esp + 4]
inc ecx
mov ebp, dword [esp]
mov edx, dword [esp + 0x14]
mov dword [ebx + ebp*8 - 8], 0x80000000
lea ebx, [ebx + ebp*8]
shl ebp, 0xf
neg ebp
add ebp, edx
jmp 0x47cbb0
mov edx, ebp
shr edx, 0x10
mov dword [esp + 8], edx
je 0x47cf25
cvttsd2si eax, xmm0
xor edx, edx
mov dword [esp], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], esi
mov eax, edx
mov ecx, dword [esp]
mov esi, dword [esp + 8]
inc edx
mov dword [eax + ebx], ecx
mov dword [eax + ebx + 8], ecx
add eax, 0x10
cmp edx, esi
jb 0x47cb31
mov eax, edx
shl eax, 4
add ebx, eax
mov eax, edx
shl eax, 0x10
lea edx, [edx + edx + 1]
neg eax
mov ecx, dword [esp + 0x18]
add ebp, eax
mov esi, dword [esp + 0x24]
mov dword [esp], edx
mov edx, dword [esp]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edi
lea ebp, [edx - 1]
cdq
mov edi, edx
shl edi, 0x11
shr eax, 0xf
or edi, eax
shr edx, 0xf
sub ebp, edi
mov ebp, 0
mov edi, dword [esp + 0x20]
sbb ebp, edx
mov ebp, dword [esp + 0x1c]
jae 0x47cbb0
cvttsd2si ebx, xmm0
mov ebp, dword [esp + 4]
mov edx, dword [esp]
mov dword [ebp + edx*8 - 8], ebx
lea ebx, [ebp + edx*8]
shl edx, 0xf
neg edx
mov ebp, dword [esp + 0x14]
add ebp, edx
mov edx, dword [esp + 0x28]
add edi, 0xffffffc0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
lea edx, [edx + eax*8 - 0x80]
xor eax, eax
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2c], ebx
add ebp, dword [esi + 0x4ba0]
mov eax, ebp
cmp ebp, 0x8000
jge 0x47cbf1
lea edx, [edx - 0x40]
mov dword [esp + 0x28], edx
jmp 0x47cea1
mov edi, dword [esp + 0x20]
lea esi, [edx - 0x40]
movss xmm0, dword [edx - 4]
xorps xmm0, xmmword [0x4ca480]
movss xmm4, dword [edi + 4]
mulss xmm0, dword [edi]
mulss xmm4, dword [edx - 8]
movss xmm5, dword [edi + 8]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0xc]
movss xmm6, dword [edi + 0xc]
subss xmm0, xmm5
mulss xmm6, dword [edx - 0x10]
movss xmm7, dword [edi + 0x10]
subss xmm0, xmm6
mulss xmm7, dword [edx - 0x14]
movss xmm4, dword [edi + 0x14]
subss xmm0, xmm7
mulss xmm4, dword [edx - 0x18]
movss xmm5, dword [edi + 0x18]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x1c]
movss xmm6, dword [edi + 0x1c]
subss xmm0, xmm5
mulss xmm6, dword [edx - 0x20]
movss xmm4, dword [edi + 0x20]
subss xmm0, xmm6
mulss xmm4, dword [edx - 0x24]
movss xmm5, dword [edi + 0x24]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x28]
movss xmm7, dword [edi + 0x28]
subss xmm0, xmm5
mulss xmm7, dword [edx - 0x2c]
movss xmm4, dword [edi + 0x2c]
subss xmm0, xmm7
mulss xmm4, dword [edx - 0x30]
movss xmm5, dword [edi + 0x30]
subss xmm0, xmm4
mulss xmm5, dword [edx - 0x34]
movss xmm6, dword [edi + 0x34]
subss xmm0, xmm5
mulss xmm6, dword [edx - 0x38]
movss xmm4, dword [edi + 0x38]
subss xmm0, xmm6
mulss xmm4, dword [edx - 0x3c]
movss xmm5, dword [edi + 0x3c]
subss xmm0, xmm4
mulss xmm5, dword [esi]
mov dword [esp + 0x28], esi
subss xmm0, xmm5
mulss xmm0, xmm3
cvtss2sd xmm0, xmm0
comisd xmm0, xmm2
jbe 0x47cd85
mov esi, ebp
shr esi, 0x10
je 0x47cf31
xor edi, edi
xor edx, edx
mov dword [esp], eax
mov dword [esp + 0x1c], ebp
mov ebp, 0x7fffffff
mov eax, edx
inc edi
inc ecx
mov dword [eax + ebx], ebp
inc edx
mov dword [eax + ebx + 8], ebp
add eax, 0x10
cmp edi, esi
jb 0x47cd0c
mov esi, edi
add ecx, edx
shl esi, 0x10
mov edx, edi
shl edx, 4
neg esi
mov ebp, dword [esp + 0x1c]
add ebx, edx
mov eax, dword [esp]
add ebp, esi
lea esi, [edi + edi + 1]
cdq
mov edi, edx
mov dword [esp], eax
shl edi, 0x11
shr eax, 0xf
mov dword [esp + 4], esi
lea esi, [esi - 1]
or edi, eax
shr edx, 0xf
sub esi, edi
mov esi, 0
mov eax, dword [esp]
sbb esi, edx
mov esi, dword [esp + 4]
jae 0x47cea1
mov edx, dword [esp + 0x2c]
inc ecx
mov dword [edx + esi*8 - 8], 0x7fffffff
lea ebx, [edx + esi*8]
shl esi, 0xf
neg esi
lea ebp, [eax + esi]
jmp 0x47cea1
comisd xmm1, xmm0
jbe 0x47ce22
mov esi, ebp
shr esi, 0x10
je 0x47cf3b
xor edi, edi
xor edx, edx
mov dword [esp], eax
mov dword [esp + 0x1c], ebp
mov ebp, 0x80000000
mov eax, edx
inc edi
inc ecx
mov dword [eax + ebx], ebp
inc edx
mov dword [eax + ebx + 8], ebp
add eax, 0x10
cmp edi, esi
jb 0x47cdac
mov esi, edi
add ecx, edx
shl esi, 0x10
mov edx, edi
shl edx, 4
neg esi
mov ebp, dword [esp + 0x1c]
add ebx, edx
mov eax, dword [esp]
add ebp, esi
lea esi, [edi + edi + 1]
cdq
mov edi, edx
mov dword [esp], eax
shl edi, 0x11
shr eax, 0xf
mov dword [esp + 8], esi
lea esi, [esi - 1]
or edi, eax
shr edx, 0xf
sub esi, edi
mov esi, 0
mov eax, dword [esp]
sbb esi, edx
mov esi, dword [esp + 8]
jae 0x47cea1
mov edx, dword [esp + 0x2c]
inc ecx
mov dword [edx + esi*8 - 8], 0x80000000
lea ebx, [edx + esi*8]
shl esi, 0xf
neg esi
lea ebp, [eax + esi]
jmp 0x47cea1
mov esi, ebp
shr esi, 0x10
je 0x47cf45
xor edi, edi
mov dword [esp + 0x18], ecx
cvttsd2si edx, xmm0
mov ecx, edi
inc edi
mov dword [ecx + ebx], edx
mov dword [ecx + ebx + 8], edx
add ecx, 0x10
cmp edi, esi
jb 0x47ce39
mov esi, edi
mov edx, edi
shl esi, 0x10
shl edx, 4
neg esi
mov ecx, dword [esp + 0x18]
add ebx, edx
add ebp, esi
lea esi, [edi + edi + 1]
cdq
mov edi, edx
mov dword [esp], eax
shl edi, 0x11
shr eax, 0xf
mov dword [esp + 0x10], esi
lea esi, [esi - 1]
or edi, eax
shr edx, 0xf
sub esi, edi
mov esi, 0
mov eax, dword [esp]
sbb esi, edx
mov esi, dword [esp + 0x10]
jae 0x47cea1
cvttsd2si edx, xmm0
mov ebx, dword [esp + 0x2c]
mov dword [ebx + esi*8 - 8], edx
lea ebx, [ebx + esi*8]
shl esi, 0xf
neg esi
lea ebp, [eax + esi]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x14]
inc esi
add dword [esp + 0x20], 0xffffffc0
lea edx, [edx - 0x40]
mov dword [esp + 0x14], esi
cmp esi, 0xf
jb 0x47cbcd
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x24]
cmp dword [esp + 0x50], 0
mov dword [esi + edx*4 + 0x4b98], ebp
je 0x47ceef
mov ebp, edx
mov edx, 4
test ebp, ebp
cmovne ebp, edx
sub ebx, ebp
sub ebx, dword [esi + 0x6ce0]
mov dword [esi + 0x6ce8], ebx
mov eax, ecx
add esp, 0x30
pop ebp
pop ebx
pop edi
pop esi
mov esi, 1
jmp 0x47c76a
mov esi, 1
jmp 0x47c804
mov dword [esp], 1
jmp 0x47c9ec
mov dword [esp], 1
jmp 0x47caae
mov dword [esp], 1
jmp 0x47cb5f
mov esi, 1
jmp 0x47cd3a
mov esi, 1
jmp 0x47cdda
mov esi, 1
jmp 0x47ce60
mov esi, 1
jmp 0x47c885