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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov ebx, edx
push edi
mov dword [esp + 0x24], ebx
call sym.FreeImage.dll__FreeImage_GetWidth_4
push ebx
mov dword [esp + 0x20], eax
call sym.FreeImage.dll__FreeImage_GetWidth_4
mov ebp, dword [esp + 0x80]
lea ecx, [esp + 0x5c]
test ebp, ebp
mov dword [esp + 0x10], eax
xorps xmm0, xmm0
cmovne ecx, ebp
push edi
movups xmmword [esp + 0x60], xmm0
mov dword [esp + 0x28], ecx
call sym.FreeImage.dll__FreeImage_GetLine_4
push edi
mov esi, eax
call sym.FreeImage.dll__FreeImage_GetWidth_4
mov ecx, eax
xor edx, edx
mov eax, esi
div ecx
push dword [esp + 0x70]
mov ebx, eax
mov esi, ebx
push edi
shr esi, 2
call sym.FreeImage.dll__FreeImage_GetScanLine_8
push dword [esp + 0x70]
mov edi, eax
push dword [esp + 0x24]
mov dword [esp + 0x1c], edi
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov edx, eax
mov dword [esp + 0x28], edx
test ebp, ebp
je 0x1005a374
mov eax, dword [esp + 0x74]
test eax, eax
jle 0x1005a363
mov edi, edx
mov ebp, eax
nop
push ebx
push dword [esp + 0x84]
push edi
call fcn.101df960
add esp, 0xc
add edi, ebx
sub ebp, 1
jne 0x1005a340
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x14]
push ebx
mov edx, ebp
lea ecx, [esp + 0x40]
call fcn.10028bb0
add esp, 4
jmp 0x1005a39d
mov ecx, dword [esp + 0x74]
test ecx, ecx
jle 0x1005a38d
mov eax, ebx
imul eax, ecx
push eax
push 0
push edx
call fcn.101dfee0
add esp, 0xc
push ebx
lea eax, [esp + 0x40]
push 0
push eax
call fcn.101dfee0
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1005a581
mov ebp, dword [esp + 0x74]
movsd xmm3, qword [esp + 0x78]
movsd xmm4, qword [0x1039c168]
mov dword [esp + 0x18], eax
nop
push ebx
mov edx, edi
lea ecx, [esp + 0x30]
call fcn.10028bb0
add esp, 4
test esi, esi
je 0x1005a424
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x2c]
sub edx, ecx
lea edi, [esp + 0x4c]
mov eax, ecx
sub edi, ecx
mov ecx, esi
nop word [eax + eax]
movss xmm2, dword [eax]
movss xmm0, dword [edx + eax]
subss xmm0, xmm2
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, xmm3
addsd xmm1, xmm0
addsd xmm1, xmm4
cvtpd2ps xmm0, xmm1
movss dword [edi + eax], xmm0
add eax, 4
sub ecx, 1
jne 0x1005a3f0
mov edi, dword [esp + 0x14]
test ebp, ebp
js 0x1005a557
cmp ebp, dword [esp + 0x10]
jge 0x1005a557
xor ecx, ecx
test esi, esi
je 0x1005a541
cmp esi, 8
jb 0x1005a48b
mov eax, esi
and eax, 0xfffffff8
nop word [eax + eax]
movups xmm0, xmmword [esp + ecx*4 + 0x3c]
movups xmm1, xmmword [esp + ecx*4 + 0x4c]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x2c]
subps xmm0, xmm1
movups xmm1, xmmword [esp + ecx*4 + 0x5c]
movups xmmword [esp + ecx*4 + 0x2c], xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x4c]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x3c]
subps xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x3c], xmm0
add ecx, 8
cmp ecx, eax
jb 0x1005a450
cmp ecx, esi
jae 0x1005a541
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x1005a517
lea eax, [esi - 3]
nop
movss xmm1, dword [esp + ecx*4 + 0x4c]
subss xmm1, dword [esp + ecx*4 + 0x3c]
movss xmm0, dword [esp + ecx*4 + 0x2c]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x50]
subss xmm1, dword [esp + ecx*4 + 0x40]
movss dword [esp + ecx*4 + 0x2c], xmm0
movss xmm0, dword [esp + ecx*4 + 0x30]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x54]
subss xmm1, dword [esp + ecx*4 + 0x44]
movss dword [esp + ecx*4 + 0x30], xmm0
movss xmm0, dword [esp + ecx*4 + 0x34]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x58]
subss xmm1, dword [esp + ecx*4 + 0x48]
movss dword [esp + ecx*4 + 0x34], xmm0
movss xmm0, dword [esp + ecx*4 + 0x38]
subss xmm0, xmm1
movss dword [esp + ecx*4 + 0x38], xmm0
add ecx, 4
cmp ecx, eax
jb 0x1005a4a0
cmp ecx, esi
jae 0x1005a541
nop dword [eax + eax]
movss xmm1, dword [esp + ecx*4 + 0x4c]
subss xmm1, dword [esp + ecx*4 + 0x3c]
movss xmm0, dword [esp + ecx*4 + 0x2c]
subss xmm0, xmm1
movss dword [esp + ecx*4 + 0x2c], xmm0
inc ecx
cmp ecx, esi
jb 0x1005a520
mov ecx, ebp
lea edx, [esp + 0x2c]
imul ecx, ebx
push ebx
add ecx, dword [esp + 0x2c]
call fcn.10028bb0
add esp, 4
push ebx
lea edx, [esp + 0x50]
lea ecx, [esp + 0x40]
call fcn.10028bb0
add edi, ebx
add esp, 4
inc ebp
mov dword [esp + 0x14], edi
sub dword [esp + 0x18], 1
jne 0x1005a3c0
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x1c]
add edi, dword [esp + 0x74]
js 0x1005a5f1
cmp edi, dword [esp + 0x10]
jge 0x1005a5f1
push dword [esp + 0x70]
push dword [esp + 0x24]
call sym.FreeImage.dll__FreeImage_GetScanLine_8
mov esi, edi
lea edx, [esp + 0x3c]
imul esi, ebx
push ebx
add esi, eax
mov ecx, esi
call fcn.10028bb0
mov eax, dword [esp + 0x14]
add esp, 4
add esi, ebx
sub eax, edi
test ebp, ebp
je 0x1005a5e1
lea edi, [eax - 1]
test edi, edi
je 0x1005a5f1
push ebx
push ebp
push esi
call fcn.101df960
add esp, 0xc
add esi, ebx
sub edi, 1
jne 0x1005a5c7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
dec eax
imul eax, ebx
push eax
push 0
push esi
call fcn.101dfee0
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret