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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x94
movsd xmm0, qword [ebp + 0x10]
push ebx
push esi
mov ebx, ecx
unpcklpd xmm0, xmm0
movaps xmmword [esp + 0x8c], xmm0
mov esi, edx
mov dword [esp + 0x54], esi
push edi
mov edi, 0x10
test ebx, ebx
je 0x1007570f
mov edx, dword [ebx]
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ecx + edx + 0x140]
mov dword [esp + 0x5c], eax
jmp 0x10075717
mov dword [esp + 0x5c], 0
test esi, esi
je 0x10075739
mov edx, dword [esi]
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ecx + edx + 0x140]
mov dword [esp + 0x70], eax
jmp 0x10075741
mov dword [esp + 0x70], 0
mov ecx, dword [ebp + 0x18]
lea eax, [esp + 0x80]
test ecx, ecx
xorps xmm0, xmm0
movups xmmword [esp + 0x80], xmm0
cmovne eax, ecx
mov dword [esp + 0x2c], eax
test ebx, ebx
je 0x10075818
mov edx, dword [ebx]
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
test ecx, ecx
je 0x10075781
mov edi, dword [eax + edx + 0x13c]
mov esi, eax
jmp 0x10075789
mov edi, dword [edx + 0x13c]
xor esi, esi
test ecx, ecx
mov dword [esp + 0x60], 0
mov dword [esp + 0x40], edi
mov edi, 0x10
cmove eax, dword [esp + 0x60]
lea ecx, [eax + edx]
movzx eax, word [edx + esi + 0x146]
imul eax, dword [esp + 0x40]
xor edx, edx
add eax, 7
shr eax, 3
div dword [ecx + 0x13c]
mov edx, dword [ebx]
mov esi, eax
mov dword [esp + 0x24], eax
shr esi, 2
mov dword [esp + 0x64], esi
cmp dword [edx + 0x128], 0
je 0x100757df
mov ecx, dword [edx + 0x12c]
jmp 0x1007582d
lea ecx, [edx + 0x130]
mov eax, edi
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [esp + 0x24]
add ecx, edx
movzx edx, word [ecx + 0x146]
imul edx, dword [ecx + 0x13c]
add edx, 7
shr edx, 3
add edx, 3
and edx, 0xfffffffc
mov dword [esp + 0x68], edx
jmp 0x10075831
xor eax, eax
xor edx, edx
xor ecx, ecx
div ecx
mov esi, eax
mov dword [esp + 0x24], eax
shr esi, 2
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x54], esi
test eax, eax
je 0x1007588d
mov edx, dword [eax]
cmp dword [edx + 0x128], 0
je 0x10075858
mov eax, dword [edx + 0x12c]
mov dword [esp + 0x10], eax
jmp 0x10075895
lea ecx, [edx + 0x130]
mov eax, edi
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
movzx eax, word [ecx + edx + 0x146]
imul eax, dword [ecx + edx + 0x13c]
add eax, 7
shr eax, 3
add eax, 3
and eax, 0xfffffffc
mov dword [esp + 0x10], eax
jmp 0x10075895
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x28]
imul eax, dword [ebp + 8]
mov dword [esp + 0x40], eax
test ebx, ebx
je 0x10075902
mov edx, dword [ebx]
cmp dword [edx + 0x120], 0
je 0x10075902
mov eax, dword [edx + 0x128]
test eax, eax
jne 0x10075904
lea ecx, [edx + 0x130]
mov eax, edi
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov eax, dword [ecx + edx + 0x158]
add ecx, edx
add eax, 0x58
lea edx, [ecx + eax*4]
xor eax, eax
cmp dword [ecx + 0x148], 3
mov ecx, 0xc
cmove eax, ecx
add edx, eax
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and eax, ecx
add eax, edx
jmp 0x10075904
xor eax, eax
mov ebx, dword [esp + 0x40]
add eax, ebx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x58]
test eax, eax
je 0x10075971
mov ecx, dword [eax]
cmp dword [ecx + 0x120], 0
je 0x10075971
mov eax, dword [ecx + 0x128]
test eax, eax
jne 0x10075973
lea edx, [ecx + 0x130]
mov eax, edi
and edx, 0xf
sub eax, edx
neg edx
sbb edx, edx
and edx, eax
mov eax, dword [edx + ecx + 0x158]
add edx, ecx
add eax, 0x58
lea ecx, [edx + eax*4]
xor eax, eax
cmp dword [edx + 0x148], 3
mov edx, 0xc
cmove eax, edx
add ecx, eax
mov eax, ecx
and eax, 0xf
sub edi, eax
neg eax
sbb eax, eax
and eax, edi
add eax, ecx
jmp 0x10075973
xor eax, eax
lea edi, [eax + ebx]
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x100759b7
mov ecx, dword [ebp + 0xc]
test ecx, ecx
jle 0x100759a6
mov ebx, ecx
mov esi, eax
push dword [esp + 0x28]
push esi
push edi
call fcn.1026c360
add edi, dword [esp + 0x1c]
add esp, 0xc
sub ebx, 1
jne 0x10075988
mov esi, dword [esp + 0x54]
mov eax, dword [ebp + 0x18]
push dword [esp + 0x28]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.1026c360
jmp 0x100759ee
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x100759de
mov esi, dword [esp + 0x10]
mov ebx, eax
push dword [esp + 0x28]
push 0
push edi
call fcn.1026c8e0
add esp, 0xc
add edi, esi
sub ebx, 1
jne 0x100759c4
mov esi, dword [esp + 0x54]
push dword [esp + 0x28]
lea eax, [esp + 0x48]
push 0
push eax
call fcn.1026c8e0
mov ebx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x5c]
dec ebx
mov dword [esp + 0x78], ebx
test ecx, ecx
je 0x10075eb4
mov eax, dword [ebp + 0xc]
movsd xmm3, qword [0x103efa18]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x24], eax
cmp ebx, 0xf
ja case.0x10075a31.4
movzx eax, byte [ebx + 0x10075fe8]
jmp dword [eax*4 + 0x10075fc4]
mov al, byte [ecx]
mov byte [esp + 0x14], al
jmp case.0x10075a31.4
mov ax, word [ecx]
mov word [esp + 0x14], ax
jmp case.0x10075a31.4
mov ax, word [ecx]
mov word [esp + 0x14], ax
mov al, byte [ecx + 2]
mov byte [esp + 0x16], al
jmp case.0x10075a31.4
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
jmp case.0x10075a31.4
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov ax, word [ecx + 4]
mov word [esp + 0x18], ax
jmp case.0x10075a31.4
mov eax, dword [ecx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x18], eax
jmp case.0x10075a31.4
movss xmm0, dword [ecx]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ecx + 4]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [ecx + 8]
movss dword [esp + 0x1c], xmm0
jmp case.0x10075a31.4
movups xmm0, xmmword [ecx]
movups xmmword [esp + 0x14], xmm0
xor edx, edx
test esi, esi
je 0x10075be9
mov ebx, dword [esp + 0x2c]
cmp esi, 4
jb 0x10075b99
lea eax, [ebx - 4]
lea eax, [eax + esi*4]
lea edi, [esp + 0x30]
lea ecx, [esp + esi*4 + 0x2c]
cmp edi, eax
ja 0x10075ade
cmp ecx, ebx
jae 0x10075b99
mov ecx, dword [esp + 0x64]
lea esi, [esp + 0x1c]
movaps xmm3, xmmword [0x103f0300]
lea edi, [esp + 0x14]
movaps xmm4, xmmword [esp + 0x90]
mov eax, ebx
sub esi, eax
sub edi, ebx
mov dword [esp + 0x7c], esi
lea ebx, [esp + 0x30]
lea esi, [esp + 0x38]
and ecx, 0xfffffffc
sub ebx, eax
sub esi, eax
mov dword [esp + 0x74], esi
nop word [eax + eax]
movsd xmm2, qword [eax]
add edx, 4
movsd xmm1, qword [edi + eax]
subps xmm1, xmm2
mov esi, dword [esp + 0x7c]
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
movsd xmm2, qword [eax + 8]
mulpd xmm1, xmm4
addpd xmm1, xmm0
addpd xmm1, xmm3
cvtpd2ps xmm0, xmm1
movsd xmm1, qword [esi + eax]
subps xmm1, xmm2
mov esi, dword [esp + 0x74]
movsd qword [ebx + eax], xmm0
cvtps2pd xmm0, xmm2
cvtps2pd xmm1, xmm1
mulpd xmm1, xmm4
addpd xmm1, xmm0
addpd xmm1, xmm3
cvtpd2ps xmm0, xmm1
movsd qword [esi + eax], xmm0
add eax, 0x10
mov esi, dword [esp + 0x54]
cmp edx, ecx
jb 0x10075b20
mov dword [esp + 0x74], edx
cmp edx, esi
jae 0x10075be1
movsd xmm3, qword [0x103efa18]
mov ebx, dword [esp + 0x2c]
lea edi, [esp + 0x14]
mov ecx, esi
sub edi, ebx
lea eax, [ebx + edx*4]
lea ebx, [esp + 0x30]
sub ebx, dword [esp + 0x2c]
sub ecx, edx
nop
movss xmm2, dword [eax]
movss xmm0, dword [eax + edi]
subss xmm0, xmm2
cvtps2pd xmm1, xmm0
cvtps2pd xmm0, xmm2
mulsd xmm1, qword [ebp + 0x10]
addsd xmm1, xmm0
addsd xmm1, xmm3
cvtpd2ps xmm0, xmm1
movss dword [eax + ebx], xmm0
add eax, 4
sub ecx, 1
jne 0x10075bb0
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x78]
mov edx, dword [esp + 0x24]
test edx, edx
js 0x10075df0
cmp edx, dword [esp + 0x70]
jge 0x10075df0
xor ecx, ecx
test esi, esi
je 0x10075d52
cmp esi, 0x10
jb 0x10075c97
mov eax, dword [esp + 0x64]
and eax, 0xfffffff0
nop dword [eax]
movups xmm0, xmmword [esp + ecx*4 + 0x44]
movups xmm1, xmmword [esp + ecx*4 + 0x30]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x14]
subps xmm0, xmm1
movups xmm1, xmmword [esp + ecx*4 + 0x40]
movups xmmword [esp + ecx*4 + 0x14], xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x54]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x24]
subps xmm0, xmm1
movups xmm1, xmmword [esp + ecx*4 + 0x50]
movups xmmword [esp + ecx*4 + 0x24], xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x64]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x34]
subps xmm0, xmm1
movups xmm1, xmmword [esp + ecx*4 + 0x60]
movups xmmword [esp + ecx*4 + 0x34], xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x74]
subps xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x44]
subps xmm0, xmm1
movups xmmword [esp + ecx*4 + 0x44], xmm0
add ecx, 0x10
cmp ecx, eax
jb 0x10075c20
cmp ecx, esi
jae 0x10075d52
mov eax, esi
sub eax, ecx
cmp eax, 4
jb 0x10075d31
lea edx, [esi - 3]
nop word [eax + eax]
movss xmm1, dword [esp + ecx*4 + 0x30]
subss xmm1, dword [esp + ecx*4 + 0x44]
movss xmm0, dword [esp + ecx*4 + 0x14]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x34]
subss xmm1, dword [esp + ecx*4 + 0x48]
movss dword [esp + ecx*4 + 0x14], xmm0
movss xmm0, dword [esp + ecx*4 + 0x18]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x38]
subss xmm1, dword [esp + ecx*4 + 0x4c]
movss dword [esp + ecx*4 + 0x18], xmm0
movss xmm0, dword [esp + ecx*4 + 0x1c]
subss xmm0, xmm1
movss xmm1, dword [esp + ecx*4 + 0x3c]
subss xmm1, dword [esp + ecx*4 + 0x50]
movss dword [esp + ecx*4 + 0x1c], xmm0
movss xmm0, dword [esp + ecx*4 + 0x20]
subss xmm0, xmm1
movss dword [esp + ecx*4 + 0x20], xmm0
add ecx, 4
mov eax, ecx
cmp ecx, edx
jb 0x10075cb0
mov edx, dword [esp + 0x24]
cmp eax, esi
jae 0x10075d52
movss xmm1, dword [esp + ecx*4 + 0x30]
subss xmm1, dword [esp + ecx*4 + 0x44]
movss xmm0, dword [esp + ecx*4 + 0x14]
subss xmm0, xmm1
movss dword [esp + ecx*4 + 0x14], xmm0
inc ecx
cmp ecx, esi
jb 0x10075d31
push edx
push dword [esp + 0x5c]
call sym.FreeImage32.dll__FreeImage_GetScanLine_8
mov edx, eax
add edx, dword [esp + 0x40]
cmp ebx, 0xf
ja case.0x10075e00.4
movzx ecx, byte [ebx + 0x1007601c]
jmp dword [ecx*4 + 0x10075ff8]
mov al, byte [esp + 0x14]
mov byte [edx], al
jmp case.0x10075d72.4
mov ax, word [esp + 0x14]
mov word [edx], ax
jmp case.0x10075d72.4
mov ax, word [esp + 0x14]
mov word [edx], ax
mov al, byte [esp + 0x16]
mov byte [edx + 2], al
jmp case.0x10075d72.4
mov eax, dword [esp + 0x14]
mov dword [edx], eax
jmp case.0x10075d72.4
mov eax, dword [esp + 0x14]
mov dword [edx], eax
mov ax, word [esp + 0x18]
mov word [edx + 4], ax
jmp case.0x10075d72.4
mov eax, dword [esp + 0x14]
mov dword [edx], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 4], eax
jmp case.0x10075d72.4
movss xmm0, dword [esp + 0x14]
movss dword [edx], xmm0
movss xmm0, dword [esp + 0x18]
movss dword [edx + 4], xmm0
movss xmm0, dword [esp + 0x1c]
movss dword [edx + 8], xmm0
jmp case.0x10075d72.4
movups xmm0, xmmword [esp + 0x14]
movups xmmword [edx], xmm0
jmp case.0x10075d72.4
cmp ebx, 0xf
ja case.0x10075e00.4
movzx eax, byte [ebx + 0x10076050]
jmp dword [eax*4 + 0x1007602c]
mov eax, dword [esp + 0x30]
mov edi, eax
mov byte [esp + 0x44], al
jmp case.0x10075e00.4
mov word [esp + 0x44], di
jmp case.0x10075e00.4
mov al, byte [esp + 0x32]
mov word [esp + 0x44], di
mov byte [esp + 0x46], al
jmp case.0x10075e00.4
mov dword [esp + 0x44], edi
jmp case.0x10075e00.4
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov ax, word [esp + 0x34]
mov word [esp + 0x48], ax
jmp case.0x10075e00.4
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], eax
jmp case.0x10075e00.4
movss xmm0, dword [esp + 0x30]
movss dword [esp + 0x44], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 0x48], xmm0
movss xmm0, dword [esp + 0x38]
movss dword [esp + 0x4c], xmm0
jmp case.0x10075e00.4
movups xmm0, xmmword [esp + 0x30]
movups xmmword [esp + 0x44], xmm0
mov ecx, dword [esp + 0x6c]
add ecx, dword [esp + 0x68]
inc dword [esp + 0x24]
sub dword [esp + 0x60], 1
movsd xmm3, qword [0x103efa18]
mov dword [esp + 0x6c], ecx
jne 0x10075a21
mov ecx, dword [esp + 0x5c]
mov eax, dword [ebp + 0xc]
add eax, ecx
js 0x10075fbb
mov edi, dword [esp + 0x70]
cmp eax, edi
jge 0x10075fbb
push eax
push dword [esp + 0x5c]
call sym.FreeImage32.dll__FreeImage_GetScanLine_8
push dword [esp + 0x28]
mov esi, eax
lea edx, [esp + 0x48]
add esi, dword [esp + 0x44]
mov ecx, esi
call fcn.10030f10
mov ecx, dword [esp + 0x60]
add esp, 4
mov eax, dword [ebp + 0xc]
inc ecx
add eax, ecx
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x10075f9d
cmp eax, edi
jge 0x10075fbb
sub edi, eax
mov eax, dword [esp + 0x10]
add esi, eax
cmp ebx, 0xf
ja case.default.0x10075f1e
movzx eax, byte [ebx + 0x10076084]
jmp dword [eax*4 + 0x10076060]
mov al, byte [ecx]
mov byte [esi], al
jmp case.0x10075f1e.4
mov ax, word [ecx]
mov word [esi], ax
jmp case.0x10075f1e.4
mov ax, word [ecx]
mov word [esi], ax
mov al, byte [ecx + 2]
mov byte [esi + 2], al
jmp case.0x10075f1e.4
mov eax, dword [ecx]
mov dword [esi], eax
jmp case.0x10075f1e.4
mov eax, dword [ecx]
mov dword [esi], eax
mov ax, word [ecx + 4]
mov word [esi + 4], ax
jmp case.0x10075f1e.4
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
jmp case.0x10075f1e.4
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
jmp case.0x10075f1e.4
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [esp + 0x10]
sub edi, 1
jne 0x10075f10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, edi
jge 0x10075fbb
sub edi, eax
push dword [esp + 0x28]
add esi, dword [esp + 0x14]
push 0
push esi
call fcn.1026c8e0
add esp, 0xc
sub edi, 1
jne 0x10075fa3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret