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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
mov ebx, ecx
mov ebp, edx
mov dword [esp + 0x1c], ebp
push edi
mov edi, 0x10
test ebx, ebx
je 0x1006ac4a
mov esi, dword [ebx]
mov eax, edi
lea edx, [esi + 0x130]
and edx, 0xf
sub eax, edx
neg edx
sbb edx, edx
and edx, eax
mov eax, dword [edx + esi + 0x13c]
mov dword [esp + 0x1c], eax
jmp 0x1006ac52
mov dword [esp + 0x1c], 0
test ebp, ebp
je 0x1006ac79
mov edx, dword [ebp]
mov eax, edi
lea ecx, [edx + 0x130]
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov ecx, dword [ecx + edx + 0x13c]
mov dword [esp + 0x14], ecx
jmp 0x1006ac81
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x80]
lea ecx, [esp + 0x5c]
test eax, eax
xorps xmm0, xmm0
movups xmmword [esp + 0x5c], xmm0
cmovne ecx, eax
mov dword [esp + 0x28], ecx
test ebx, ebx
je 0x1006acea
mov esi, dword [ebx]
mov eax, edi
add esi, 0x130
mov edx, esi
mov ecx, esi
and edx, 0xf
sub eax, edx
neg edx
sbb edx, edx
and ecx, 0xf
and edx, eax
mov eax, edi
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, esi
and eax, 0xf
sub edi, eax
movzx ecx, word [ecx + esi + 0x16]
imul ecx, dword [edx + esi + 0xc]
add ecx, 7
shr ecx, 3
neg eax
sbb eax, eax
and eax, edi
mov esi, dword [eax + esi + 0xc]
jmp 0x1006acee
xor ecx, ecx
xor esi, esi
xor edx, edx
mov eax, ecx
div esi
mov edi, eax
mov esi, edi
shr esi, 2
test ebx, ebx
je 0x1006ad46
mov eax, dword [ebx]
cmp dword [eax + 0x120], 0
je 0x1006ad46
cmp dword [eax + 0x128], 0
je 0x1006ad1b
mov ebp, dword [eax + 0x12c]
jmp 0x1006ad27
push ebx
call sym.FreeImage.dll__FreeImage_GetLine_4
lea ebp, [eax + 3]
and ebp, 0xfffffffc
push ebx
call sym.FreeImage.dll__FreeImage_GetBits_4
test eax, eax
je 0x1006ad42
imul ebp, dword [esp + 0x70]
add ebp, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x20]
jmp 0x1006ad4c
mov ebp, dword [esp + 0x20]
xor eax, eax
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x1006ad8c
mov eax, dword [ebp]
cmp dword [eax + 0x120], 0
je 0x1006ad8c
cmp dword [eax + 0x128], 0
je 0x1006ad6d
mov ebx, dword [eax + 0x12c]
jmp 0x1006ad79
push ebp
call sym.FreeImage.dll__FreeImage_GetLine_4
lea ebx, [eax + 3]
and ebx, 0xfffffffc
push ebp
call sym.FreeImage.dll__FreeImage_GetBits_4
test eax, eax
je 0x1006ad8c
imul ebx, dword [esp + 0x70]
add ebx, eax
jmp 0x1006ad8e
xor ebx, ebx
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x18], ebx
test eax, eax
je 0x1006add3
test ebp, ebp
jle 0x1006adc2
push edi
push eax
push ebx
call fcn.1026e3e0
mov eax, dword [esp + 0x8c]
add esp, 0xc
add ebx, edi
sub ebp, 1
jne 0x1006ada5
mov ebp, dword [esp + 0x74]
push edi
mov edx, eax
lea ecx, [esp + 0x40]
call fcn.1002f020
add esp, 4
jmp 0x1006adf8
test ebp, ebp
jle 0x1006ade8
mov eax, edi
imul eax, ebp
push eax
push 0
push ebx
call fcn.1026e960
add esp, 0xc
push edi
lea eax, [esp + 0x40]
push 0
push eax
call fcn.1026e960
add esp, 0xc
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1006afe2
movsd xmm3, qword [esp + 0x78]
movsd xmm4, qword [0x103f9488]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x24], eax
nop word [eax + eax]
push edi
mov edx, ebx
lea ecx, [esp + 0x30]
call fcn.1002f020
add esp, 4
test esi, esi
je 0x1006ae84
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x2c]
sub edx, ecx
lea ebx, [esp + 0x4c]
mov eax, ecx
sub ebx, 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 [ebx + eax], xmm0
add eax, 4
sub ecx, 1
jne 0x1006ae50
mov ebx, dword [esp + 0x10]
test ebp, ebp
js 0x1006afb7
cmp ebp, dword [esp + 0x14]
jge 0x1006afb7
xor ecx, ecx
test esi, esi
je 0x1006afa1
cmp esi, 8
jb 0x1006aeeb
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 0x1006aeb0
cmp ecx, esi
jae 0x1006afa1
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x1006af77
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 0x1006af00
cmp ecx, esi
jae 0x1006afa1
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 0x1006af80
mov ecx, ebp
lea edx, [esp + 0x2c]
imul ecx, edi
push edi
add ecx, dword [esp + 0x1c]
call fcn.1002f020
add esp, 4
push edi
lea edx, [esp + 0x50]
lea ecx, [esp + 0x40]
call fcn.1002f020
add ebx, edi
add esp, 4
inc ebp
mov dword [esp + 0x10], ebx
sub dword [esp + 0x24], 1
jne 0x1006ae20
mov ebp, dword [esp + 0x74]
mov eax, dword [esp + 0x1c]
add ebp, eax
js 0x1006b09e
cmp ebp, dword [esp + 0x14]
jge 0x1006b09e
mov esi, dword [esp + 0x20]
test esi, esi
je 0x1006b037
mov ebx, dword [esi]
cmp dword [ebx + 0x120], 0
je 0x1006b037
cmp dword [ebx + 0x128], 0
je 0x1006b018
mov ebx, dword [ebx + 0x12c]
jmp 0x1006b024
push esi
call sym.FreeImage.dll__FreeImage_GetLine_4
lea ebx, [eax + 3]
and ebx, 0xfffffffc
push esi
call sym.FreeImage.dll__FreeImage_GetBits_4
test eax, eax
je 0x1006b037
imul ebx, dword [esp + 0x70]
add ebx, eax
jmp 0x1006b039
xor ebx, ebx
mov esi, ebp
lea edx, [esp + 0x3c]
imul esi, edi
push edi
add esi, ebx
mov ecx, esi
call fcn.1002f020
mov eax, dword [esp + 0x84]
add esp, 4
add esi, edi
test eax, eax
je 0x1006b088
mov ebx, dword [esp + 0x14]
sub ebx, ebp
sub ebx, 1
je 0x1006b09e
push edi
push eax
push esi
call fcn.1026e3e0
mov eax, dword [esp + 0x8c]
add esp, 0xc
add esi, edi
sub ebx, 1
jne 0x1006b067
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret
mov eax, dword [esp + 0x14]
sub eax, ebp
dec eax
imul eax, edi
push eax
push 0
push esi
call fcn.1026e960
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret