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

Disassembly:
push esi
push edi
push ebx
sub esp, 0xe8
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x138]
mov esi, dword [esp + 0x12c]
mov edx, dword [esp + 0x11c]
mov edi, dword [ecx]
mov eax, dword [esi]
mov dword [esp + 0x14], eax
mov edx, dword [edx]
lea ebx, [edi*8]
mov dword [esp], ebx
lea ebx, [esi + edi*8]
lea ecx, [edi*8 - 4]
mov dword [esp + 4], ecx
sub ebx, ecx
cmp edx, edi
lea ecx, [edx*8]
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x110]
lea ebx, [eax + edx*8]
mov eax, dword [eax]
jge 0x488121
mov edx, edi
mov dword [esp + 0x1c], eax
mov eax, ecx
neg eax
lea edi, [esi + edx*8]
mov esi, edi
sub edi, dword [esp + 4]
mov eax, dword [eax + ebx + 4]
mov ebx, dword [esp]
sub esi, ebx
mov edi, dword [edi]
sub edi, dword [esp + 0x18]
mov dword [esp + 0x24], edi
mov edi, dword [esp + 0x110]
sub edi, ecx
mov esi, dword [esi]
sub esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
mov esi, dword [edi + edx*8]
sub esi, dword [esp + 0x1c]
mov dword [esp + 0x28], esi
mov esi, dword [edi + edx*8 + 4]
lea edi, [edx + 1]
sub esi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], esi
mov eax, dword [esp + 0x120]
mov esi, dword [esp + 0x13c]
mov eax, dword [eax]
mov esi, dword [esi]
cmp eax, esi
cmovl esi, eax
mov eax, esi
sub eax, edi
inc eax
cmp esi, edi
jl 0x4887a8
mov esi, dword [esp + 0x10c]
mov edi, dword [esp + 0x108]
mov dword [esp + 0x30], 0
movsd xmm1, qword [esi]
lea esi, [edx*4 + 4]
movaps xmm0, xmm1
add edi, esi
mov dword [esp + 0x58], edi
lea edx, [edx*8 + 8]
mov edi, dword [esp + 0x12c]
add esi, dword [esp + 0x104]
mov dword [esp + 0x50], eax
unpcklpd xmm0, xmm0
add edi, edx
add edx, dword [esp + 0x110]
sub edi, ebx
sub edx, ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x48]
mov ebx, dword [esi + eax*4 - 4]
mov esi, dword [esi + eax*4]
mov dword [esp + 0x40], ebx
sub esi, ebx
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edx
mov ebx, dword [ecx + eax*8]
mov edx, dword [ecx + eax*8 + 4]
mov ecx, dword [esp + 0x44]
sub ebx, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
mov ebx, dword [ecx + eax*8]
sub ebx, dword [esp + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ebx
mov ebx, esi
mov ecx, dword [ecx + eax*8 + 4]
lea eax, [esi - 1]
imul ebx, eax
mov dword [esp + 0x70], eax
mov eax, ebx
shr eax, 0x1f
add ebx, eax
sar ebx, 1
sub edx, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x24], edx
sub ecx, dword [esp + 0x20]
lea eax, [edx + ebx]
sub eax, edi
add ebx, ecx
cdq
idiv esi
sub ebx, dword [esp + 0x38]
mov dword [esp + 0x98], eax
mov eax, ebx
cdq
idiv esi
mov dword [esp + 0x5c], edi
mov ebx, esi
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x54]
mov dword [edi + eax*4 - 4], 0
mov edi, dword [esp + 0x10]
mov edx, edi
sub edx, ecx
lea ecx, [ecx + 2]
dec edx
cmp edi, ecx
jl 0x488318
mov ecx, dword [esp + 0x130]
mov edi, dword [esp + 0x54]
mov dword [esp + 0xc], 0
mov dword [esp + 0x94], esi
mov dword [esp + 0x74], edx
lea ecx, [ecx + edi*8]
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x108]
mov edx, dword [ecx + esi*8 + 8]
inc esi
mov eax, dword [esp + 0x104]
mov dword [eax + edx*4 - 4], ebx
add ebx, dword [edi + edx*4]
sub ebx, dword [edi + edx*4 - 4]
cmp esi, dword [esp + 0x74]
jb 0x4882f0
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x28]
lea ecx, [ebx + 1]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x64], ecx
mov ecx, edx
sub ecx, ebx
cmp edx, ebx
jle 0x48879d
mov edi, dword [esp + 0x134]
xor ebx, ebx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x7c], ecx
lea ebx, [edi + edx*8]
mov edi, dword [esp + 0x118]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x30], eax
lea ebx, [edi + edx*8]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x68], ebx
mov ecx, dword [esp + 0x60]
lea edi, [edx*8]
mov dword [esp + 0xe4], edi
lea ebx, [edx*8 + 8]
mov dword [esp + 0xdc], ebx
mov edx, dword [esp + 0x98]
lea edi, [edx*8]
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 8]
lea ebx, [edx*8 + 8]
mov dword [esp + 0xd4], ebx
lea edx, [edx + 1]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x8c], edx
mov edx, dword [esp + 0x64]
lea edi, [edi + ebx*8]
mov dword [esp + 0xe0], edi
mov eax, dword [esp + 0x114]
mov ebx, dword [esp + 0x104]
cmp edx, dword [esp + 0x84]
mov esi, dword [eax + edx*8 - 8]
mov dword [esp + 0x78], esi
mov eax, dword [ebx + esi*4 - 4]
jne 0x4887b4
cmp dword [esp + 0x70], 0
js 0x488768
mov ebx, dword [esp + 0x114]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x88], 0
mov edi, dword [ebx + edx*8 - 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov ebx, dword [esi + edi*4]
sub ebx, dword [esi + edi*4 - 4]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov dword [esp + 0xcc], ebx
lea esi, [esi + ecx*8]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0xc0], esi
lea ebx, [edi + eax*8]
add eax, dword [esp + 0x5c]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xbc], eax
mov ebx, ecx
lea eax, [ecx + 1]
imul ebx, eax
mov edx, ebx
shr edx, 0x1f
add ebx, edx
sar ebx, 1
mov dword [esp + 0xb8], eax
cmp ecx, dword [esp + 0xcc]
jge 0x48871d
mov eax, dword [esp + 0x8c]
mov edx, ecx
imul eax, ecx
neg edx
neg eax
add eax, ebx
shl eax, 3
neg eax
add eax, dword [esp + 0xd0]
add edx, dword [esp + 0xcc]
and eax, 0xf
je 0x4884d0
test al, 7
jne 0x488ad8
mov eax, 1
lea esi, [eax + 8]
cmp edx, esi
jl 0x488ad8
mov edi, edx
lea esi, [ebx*8]
sub edi, eax
and edi, 7
neg edi
add edi, edx
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xd4]
imul edi, ecx
neg edi
add edi, esi
neg edi
add edi, dword [esp + 0xd0]
mov dword [esp + 0xc4], edi
mov edi, dword [esp + 0xdc]
imul edi, ecx
sub esi, edi
neg esi
add esi, dword [esp + 0xc0]
mov dword [esp + 0xc8], esi
test eax, eax
jbe 0x488568
mov dword [esp + 0x88], ecx
xor esi, esi
mov ecx, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
movsd xmm2, qword [ecx + esi*8]
mulsd xmm2, xmm1
addsd xmm2, qword [edi + esi*8]
movsd qword [edi + esi*8], xmm2
inc esi
cmp esi, eax
jb 0x488549
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov dword [esp + 4], edx
lea edx, [esi + 1]
mov esi, dword [esp + 0x60]
imul edx, ecx
add edi, esi
mov esi, dword [esp + 0x118]
sub edi, ebx
add edi, eax
add edx, edi
lea edx, [esi + edx*8]
test dl, 0xf
mov edx, dword [esp + 4]
je 0x488635
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
lea esi, [esi]
movsd xmm2, qword [esi + eax*8]
movsd xmm3, qword [esi + eax*8 + 0x10]
movsd xmm4, qword [esi + eax*8 + 0x20]
movsd xmm5, qword [esi + eax*8 + 0x30]
movhpd xmm2, qword [esi + eax*8 + 8]
movhpd xmm3, qword [esi + eax*8 + 0x18]
movhpd xmm4, qword [esi + eax*8 + 0x28]
movhpd xmm5, qword [esi + eax*8 + 0x38]
mulpd xmm2, xmm0
mulpd xmm3, xmm0
mulpd xmm4, xmm0
mulpd xmm5, xmm0
addpd xmm2, xmmword [edi + eax*8]
addpd xmm3, xmmword [edi + eax*8 + 0x10]
addpd xmm4, xmmword [edi + eax*8 + 0x20]
addpd xmm5, xmmword [edi + eax*8 + 0x30]
movaps xmmword [edi + eax*8], xmm2
movaps xmmword [edi + eax*8 + 0x10], xmm3
movaps xmmword [edi + eax*8 + 0x20], xmm4
movaps xmmword [edi + eax*8 + 0x30], xmm5
add eax, 8
cmp eax, ecx
jb 0x4885c0
jmp 0x4886b4
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xb4]
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xc4]
nop
lea esi, [esi]
lea edi, [edi]
movaps xmm2, xmmword [esi + eax*8]
movaps xmm3, xmmword [esi + eax*8 + 0x10]
movaps xmm4, xmmword [esi + eax*8 + 0x20]
movaps xmm5, xmmword [esi + eax*8 + 0x30]
mulpd xmm2, xmm0
mulpd xmm3, xmm0
mulpd xmm4, xmm0
mulpd xmm5, xmm0
addpd xmm2, xmmword [edi + eax*8]
addpd xmm3, xmmword [edi + eax*8 + 0x10]
addpd xmm4, xmmword [edi + eax*8 + 0x20]
addpd xmm5, xmmword [edi + eax*8 + 0x30]
movaps xmmword [edi + eax*8], xmm2
movaps xmmword [edi + eax*8 + 0x10], xmm3
movaps xmmword [edi + eax*8 + 0x20], xmm4
movaps xmmword [edi + eax*8 + 0x30], xmm5
add eax, 8
cmp eax, ecx
jb 0x488660
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x88]
cmp edx, dword [esp + 0xb4]
jbe 0x48871d
mov esi, dword [esp + 0xd4]
lea eax, [ebx*8]
imul esi, ecx
mov edi, dword [esp + 0xdc]
neg esi
imul edi, ecx
add esi, eax
sub eax, edi
neg esi
neg eax
add esi, dword [esp + 0xd0]
add eax, dword [esp + 0xc0]
mov edi, dword [esp + 0xb4]
movsd xmm2, qword [eax + edi*8]
mulsd xmm2, xmm1
addsd xmm2, qword [esi + edi*8]
movsd qword [esi + edi*8], xmm2
inc edi
cmp edi, edx
jb 0x488705
mov eax, dword [esp + 0x98]
neg ebx
imul eax, ecx
add ebx, dword [esp + 0xbc]
add eax, ecx
add eax, ebx
mov ebx, dword [esp + 0x134]
mov edx, dword [esp + 0xe0]
movsd xmm2, qword [ebx + eax*8]
movsd qword [edx + ecx*8], xmm2
mov ecx, dword [esp + 0xb8]
cmp ecx, dword [esp + 0x94]
jb 0x488474
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x108]
inc edx
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x80]
inc esi
add ecx, dword [eax + ebx*4]
sub ecx, dword [eax + ebx*4 - 4]
mov dword [esp + 0x80], esi
cmp esi, dword [esp + 0x7c]
jb 0x4883e1
nop
lea esi, [esi]
mov eax, dword [esp + 0x30]
inc eax
cmp eax, dword [esp + 0x50]
jb 0x4881fc
add esp, 0xe8
pop ebx
pop edi
pop esi
ret 0x50
cmp dword [esp + 0x70], 0
js 0x488768
mov ebx, dword [esp + 0x114]
mov esi, dword [esp + 0x108]
mov dword [esp + 0x90], 0
mov edi, dword [ebx + edx*8 - 8]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
mov ebx, dword [esi + edi*4]
sub ebx, dword [esi + edi*4 - 4]
mov esi, dword [esp + 0x6c]
mov dword [esp], ebx
lea ebx, [esi + eax*8]
mov eax, dword [esp + 0x68]
mov esi, dword [esp]
mov dword [esp + 0xa8], ebx
lea eax, [eax + ecx*8]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x90]
mov ecx, eax
lea edx, [eax + 1]
imul ecx, edx
mov ebx, ecx
shr ebx, 0x1f
add ecx, ebx
shr ecx, 1
mov dword [esp + 0xa0], edx
test esi, esi
jle 0x488ac4
mov edx, dword [esp + 0x98]
imul edx, eax
neg edx
add edx, ecx
shl edx, 3
neg edx
add edx, dword [esp + 0xa8]
and edx, 0xf
je 0x48885d
test dl, 7
jne 0x488ae8
mov edx, 1
lea ebx, [edx + 8]
cmp esi, ebx
jl 0x488ae8
mov edi, esi
lea ebx, [ecx*8]
sub edi, edx
and edi, 7
neg edi
add edi, esi
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0xe4]
imul edi, eax
neg edi
add edi, ebx
neg edi
add edi, dword [esp + 0xa4]
mov dword [esp + 0xac], edi
mov edi, dword [esp + 0xd8]
imul edi, eax
sub ebx, edi
neg ebx
add ebx, dword [esp + 0xa8]
mov dword [esp + 0xb0], ebx
test edx, edx
jbe 0x4888f5
mov dword [esp + 0x90], eax
xor ebx, ebx
mov eax, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
movsd xmm2, qword [edi + ebx*8]
mulsd xmm2, xmm1
addsd xmm2, qword [eax + ebx*8]
movsd qword [eax + ebx*8], xmm2
inc ebx
cmp ebx, edx
jb 0x4888d6
mov eax, dword [esp + 0x90]
mov dword [esp], esi
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x34]
imul ebx, eax
add esi, edi
mov edi, dword [esp + 0x118]
sub esi, ecx
add esi, edx
add ebx, esi
mov esi, dword [esp]
lea ebx, [edi + ebx*8]
test bl, 0xf
je 0x4889c5
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
nop
lea esi, [esi]
lea edi, [edi]
movsd xmm2, qword [edi + edx*8]
movsd xmm3, qword [edi + edx*8 + 0x10]
movsd xmm4, qword [edi + edx*8 + 0x20]
movsd xmm5, qword [edi + edx*8 + 0x30]
movhpd xmm2, qword [edi + edx*8 + 8]
movhpd xmm3, qword [edi + edx*8 + 0x18]
movhpd xmm4, qword [edi + edx*8 + 0x28]
movhpd xmm5, qword [edi + edx*8 + 0x38]
mulpd xmm2, xmm0
mulpd xmm3, xmm0
mulpd xmm4, xmm0
mulpd xmm5, xmm0
addpd xmm2, xmmword [ebx + edx*8]
addpd xmm3, xmmword [ebx + edx*8 + 0x10]
addpd xmm4, xmmword [ebx + edx*8 + 0x20]
addpd xmm5, xmmword [ebx + edx*8 + 0x30]
movaps xmmword [ebx + edx*8], xmm2
movaps xmmword [ebx + edx*8 + 0x10], xmm3
movaps xmmword [ebx + edx*8 + 0x20], xmm4
movaps xmmword [ebx + edx*8 + 0x30], xmm5
add edx, 8
cmp edx, eax
jb 0x488950
jmp 0x488a44
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x9c]
mov ebx, dword [esp + 0xb0]
mov edi, dword [esp + 0xac]
nop
lea esi, [esi]
lea edi, [edi]
movaps xmm2, xmmword [edi + edx*8]
movaps xmm3, xmmword [edi + edx*8 + 0x10]
movaps xmm4, xmmword [edi + edx*8 + 0x20]
movaps xmm5, xmmword [edi + edx*8 + 0x30]
mulpd xmm2, xmm0
mulpd xmm3, xmm0
mulpd xmm4, xmm0
mulpd xmm5, xmm0
addpd xmm2, xmmword [ebx + edx*8]
addpd xmm3, xmmword [ebx + edx*8 + 0x10]
addpd xmm4, xmmword [ebx + edx*8 + 0x20]
addpd xmm5, xmmword [ebx + edx*8 + 0x30]
movaps xmmword [ebx + edx*8], xmm2
movaps xmmword [ebx + edx*8 + 0x10], xmm3
movaps xmmword [ebx + edx*8 + 0x20], xmm4
movaps xmmword [ebx + edx*8 + 0x30], xmm5
add edx, 8
cmp edx, eax
jb 0x4889f0
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
cmp esi, dword [esp + 0x9c]
jbe 0x488af8
mov edx, dword [esp + 0xe4]
imul edx, eax
imul eax, dword [esp + 0xd8]
shl ecx, 3
neg edx
add edx, ecx
sub ecx, eax
neg edx
neg ecx
add edx, dword [esp + 0xa4]
add ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x9c]
movsd xmm2, qword [edx + eax*8]
mulsd xmm2, xmm1
addsd xmm2, qword [ecx + eax*8]
movsd qword [ecx + eax*8], xmm2
inc eax
cmp eax, esi
jb 0x488a93
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0x94]
jb 0x488810
jmp 0x488760
mov eax, edx
cmp eax, dword [esp + 0x94]
jb 0x488810
jmp 0x488760
mov dword [esp + 0xb4], 0
jmp 0x4886c2
mov dword [esp + 0x9c], 0
jmp 0x488a52
mov eax, dword [esp + 0xa0]
cmp eax, dword [esp + 0x94]
jb 0x488810
jmp 0x488760