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

Disassembly:
sub esp, 0x48
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x1c], edx
push edi
mov edi, 0x10
test esi, esi
je 0x100746ce
mov edi, dword [esi]
mov eax, 0x10
mov esi, edi
and esi, 0xf
sub eax, esi
neg esi
sbb esi, esi
and esi, eax
mov eax, dword [esi + edi + 0x140]
mov esi, ecx
mov dword [esp + 0x24], eax
mov edi, 0x10
jmp 0x100746d6
mov dword [esp + 0x24], 0
test edx, edx
je 0x100746f4
mov edx, dword [edx]
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and ecx, eax
mov ebx, dword [ecx + edx + 0x140]
jmp 0x100746f6
xor ebx, ebx
mov ebp, dword [esp + 0x6c]
lea eax, [esp + 0x14]
test ebp, ebp
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0
cmovne eax, ebp
mov dword [esp + 0x3c], eax
test esi, esi
je 0x100747e6
mov edx, dword [esi]
mov eax, edi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
test ecx, ecx
je 0x1007473f
mov ebx, dword [eax + edx + 0x13c]
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x30], eax
jmp 0x10074755
mov ebp, dword [edx + 0x13c]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x30], 0
test ecx, ecx
mov dword [esp + 0x38], 0
cmove eax, dword [esp + 0x38]
lea ecx, [eax + edx]
mov eax, dword [esp + 0x30]
movzx eax, word [edx + eax + 0x146]
xor edx, edx
imul eax, dword [esp + 0x2c]
add eax, 7
shr eax, 3
div dword [ecx + 0x13c]
mov edx, dword [esi]
mov dword [esp + 0x28], eax
cmp dword [edx + 0x128], 0
je 0x100747a7
mov ecx, dword [edx + 0x12c]
mov edi, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x38], eax
jmp 0x10074802
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 + 0x28]
add ecx, edx
mov dword [esp + 0x38], eax
mov edi, eax
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 + 0x2c], edx
jmp 0x10074802
xor ecx, ecx
mov dword [esp + 0x2c], 0
xor eax, eax
xor edx, edx
div ecx
mov ecx, eax
mov edi, eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10074859
mov edx, dword [eax]
cmp dword [edx + 0x128], 0
je 0x10074821
mov eax, dword [edx + 0x12c]
mov dword [esp + 0x10], eax
jmp 0x10074861
lea ecx, [edx + 0x130]
mov eax, 0x10
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 0x10074861
mov dword [esp + 0x10], 0
mov eax, edi
imul eax, dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
test esi, esi
je 0x100748d2
mov edx, dword [esi]
cmp dword [edx + 0x120], 0
je 0x100748d2
mov eax, dword [edx + 0x128]
mov esi, 0x10
test eax, eax
jne 0x100748d7
lea ecx, [edx + 0x130]
mov eax, esi
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, esi
mov ecx, edx
and ecx, 0xf
sub eax, ecx
neg ecx
sbb ecx, ecx
and eax, ecx
add eax, edx
jmp 0x100748d7
xor eax, eax
lea esi, [eax + 0x10]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x10074942
mov ecx, dword [eax]
cmp dword [ecx + 0x120], 0
je 0x10074942
mov eax, dword [ecx + 0x128]
test eax, eax
jne 0x10074944
lea edx, [ecx + 0x130]
mov eax, esi
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 esi, eax
neg eax
sbb eax, eax
and eax, esi
add eax, ecx
jmp 0x10074944
xor eax, eax
mov esi, dword [esp + 0x5c]
add esi, eax
mov eax, dword [esp + 0x60]
test ebp, ebp
je 0x10074986
test eax, eax
jle 0x10074978
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x34], eax
nop
push edi
push ebp
push esi
call fcn.1026c360
add esp, 0xc
add esi, ebx
sub dword [esp + 0x34], 1
jne 0x10074960
mov ebx, dword [esp + 0x18]
push edi
lea eax, [esp + 0x1c]
push ebp
push eax
call fcn.1026c360
jmp 0x100749b4
test eax, eax
jle 0x100749a7
mov ebx, dword [esp + 0x10]
mov ebp, eax
push edi
push 0
push esi
call fcn.1026c8e0
add esp, 0xc
add esi, ebx
sub ebp, 1
jne 0x10074990
mov ebx, dword [esp + 0x18]
push edi
lea eax, [esp + 0x1c]
push 0
push eax
call fcn.1026c8e0
mov ebp, dword [esp + 0x34]
add esp, 0xc
mov ecx, dword [esp + 0x24]
dec ebp
test ecx, ecx
je 0x10074ca5
mov eax, dword [esp + 0x60]
movsd xmm2, qword [0x103efa18]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x28], eax
cmp ebp, 0xf
ja case.0x100749f4.4
movzx eax, byte [ebp + 0x10074ddc]
jmp dword [eax*4 + 0x10074db8]
mov al, byte [ecx]
xor edx, edx
mov byte [esp + 0x48], al
jmp 0x10074a8b
mov ax, word [ecx]
xor edx, edx
mov word [esp + 0x48], ax
jmp 0x10074a8b
mov ax, word [ecx]
xor edx, edx
mov word [esp + 0x48], ax
mov al, byte [ecx + 2]
mov byte [esp + 0x4a], al
jmp 0x10074a8b
mov eax, dword [ecx]
xor edx, edx
mov dword [esp + 0x48], eax
jmp 0x10074a8b
mov eax, dword [ecx]
xor edx, edx
mov dword [esp + 0x48], eax
mov ax, word [ecx + 4]
mov word [esp + 0x4c], ax
jmp 0x10074a8b
mov eax, dword [ecx]
xor edx, edx
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x4c], eax
jmp 0x10074a8b
movss xmm0, dword [ecx]
xor edx, edx
movss dword [esp + 0x48], xmm0
movss xmm0, dword [ecx + 4]
movss dword [esp + 0x4c], xmm0
movss xmm0, dword [ecx + 8]
movss dword [esp + 0x50], xmm0
jmp 0x10074a8b
movups xmm0, xmmword [ecx]
xor edx, edx
movups xmmword [esp + 0x48], xmm0
jmp 0x10074a8b
xor edx, edx
test edi, edi
je 0x10074ad3
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x48]
sub esi, eax
lea eax, [esp + 0x48]
add eax, edx
movzx ecx, byte [eax + esi]
movzx eax, byte [eax]
sub eax, ecx
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movd xmm1, eax
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [esp + 0x64]
addsd xmm1, xmm0
addsd xmm1, xmm2
cvttsd2si eax, xmm1
mov byte [esp + edx + 0x40], al
inc edx
cmp edx, edi
jb 0x10074a95
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
test edx, edx
js 0x10074c32
cmp edx, ebx
jge 0x10074c32
xor ecx, ecx
test edi, edi
je 0x10074b91
cmp edi, 0x40
jb 0x10074b80
mov eax, dword [esp + 0x38]
and eax, 0xffffffc0
movups xmm1, xmmword [esp + ecx + 0x48]
movups xmm0, xmmword [esp + ecx + 0x40]
psubb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x18]
paddb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x50]
movups xmmword [esp + ecx + 0x48], xmm1
movups xmm1, xmmword [esp + ecx + 0x58]
psubb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x28]
paddb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x60]
movups xmmword [esp + ecx + 0x58], xmm1
movups xmm1, xmmword [esp + ecx + 0x68]
psubb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x38]
paddb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x70]
movups xmmword [esp + ecx + 0x68], xmm1
movups xmm1, xmmword [esp + ecx + 0x78]
psubb xmm1, xmm0
movups xmm0, xmmword [esp + ecx + 0x48]
paddb xmm1, xmm0
movups xmmword [esp + ecx + 0x78], xmm1
add ecx, 0x40
cmp ecx, eax
jb 0x10074b01
cmp ecx, edi
jae 0x10074b91
nop dword [eax]
mov al, byte [esp + ecx + 0x18]
sub al, byte [esp + ecx + 0x40]
add byte [esp + ecx + 0x48], al
inc ecx
cmp ecx, edi
jb 0x10074b80
push edx
push dword [esp + 0x24]
call sym.FreeImage32.dll__FreeImage_GetScanLine_8
mov edx, eax
add edx, dword [esp + 0x5c]
cmp ebp, 0xf
ja case.0x10074c3e.4
movzx ecx, byte [ebp + 0x10074e10]
jmp dword [ecx*4 + 0x10074dec]
mov al, byte [esp + 0x48]
mov byte [edx], al
jmp case.0x10074bb1.4
mov ax, word [esp + 0x48]
mov word [edx], ax
jmp case.0x10074bb1.4
mov ax, word [esp + 0x48]
mov word [edx], ax
mov al, byte [esp + 0x4a]
mov byte [edx + 2], al
jmp case.0x10074bb1.4
mov eax, dword [esp + 0x48]
mov dword [edx], eax
jmp case.0x10074bb1.4
mov eax, dword [esp + 0x48]
mov dword [edx], eax
mov ax, word [esp + 0x4c]
mov word [edx + 4], ax
jmp case.0x10074bb1.4
mov eax, dword [esp + 0x48]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov dword [edx + 4], eax
jmp case.0x10074bb1.4
movss xmm0, dword [esp + 0x48]
movss dword [edx], xmm0
movss xmm0, dword [esp + 0x4c]
movss dword [edx + 4], xmm0
movss xmm0, dword [esp + 0x50]
movss dword [edx + 8], xmm0
jmp case.0x10074bb1.4
movups xmm0, xmmword [esp + 0x48]
movups xmmword [edx], xmm0
jmp case.0x10074bb1.4
cmp ebp, 0xf
ja case.0x10074c3e.4
movzx eax, byte [ebp + 0x10074e3c]
jmp dword [eax*4 + 0x10074e20]
mov eax, dword [esp + 0x40]
mov esi, eax
mov byte [esp + 0x18], al
jmp case.0x10074c3e.4
mov word [esp + 0x18], si
jmp case.0x10074c3e.4
mov al, byte [esp + 0x42]
mov word [esp + 0x18], si
mov byte [esp + 0x1a], al
jmp case.0x10074c3e.4
mov eax, dword [esp + 0x44]
mov word [esp + 0x1c], ax
jmp case.0x10074c3e.3
mov eax, dword [esp + 0x44]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x30]
add ecx, dword [esp + 0x2c]
inc dword [esp + 0x28]
sub dword [esp + 0x34], 1
movsd xmm2, qword [0x103efa18]
mov dword [esp + 0x30], ecx
jne 0x100749e4
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x60]
add eax, ecx
js 0x10074dad
cmp eax, ebx
jge 0x10074dad
push eax
push dword [esp + 0x24]
call sym.FreeImage32.dll__FreeImage_GetScanLine_8
mov esi, eax
lea edx, [esp + 0x18]
add esi, dword [esp + 0x5c]
push edi
mov ecx, esi
call fcn.10030f10
mov ecx, dword [esp + 0x28]
add esp, 4
mov eax, dword [esp + 0x60]
inc ecx
add eax, ecx
mov ecx, dword [esp + 0x6c]
test ecx, ecx
je 0x10074d92
cmp eax, ebx
jge 0x10074dad
sub ebx, eax
mov eax, dword [esp + 0x10]
nop dword [eax]
add esi, eax
cmp ebp, 0xf
ja case.default.0x10074d12
movzx eax, byte [ebp + 0x10074e70]
jmp dword [eax*4 + 0x10074e4c]
mov al, byte [ecx]
mov byte [esi], al
jmp case.0x10074d12.4
mov ax, word [ecx]
mov word [esi], ax
jmp case.0x10074d12.4
mov ax, word [ecx]
mov word [esi], ax
mov al, byte [ecx + 2]
mov byte [esi + 2], al
jmp case.0x10074d12.4
mov eax, dword [ecx]
mov dword [esi], eax
jmp case.0x10074d12.4
mov eax, dword [ecx]
mov dword [esi], eax
mov ax, word [ecx + 4]
mov word [esi + 4], ax
jmp case.0x10074d12.4
mov eax, dword [ecx]
mov dword [esi], eax
mov eax, dword [ecx + 4]
mov dword [esi + 4], eax
jmp case.0x10074d12.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.0x10074d12.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 ebx, 1
jne 0x10074d00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret
cmp eax, ebx
jge 0x10074dad
sub ebx, eax
add esi, dword [esp + 0x10]
push edi
push 0
push esi
call fcn.1026c8e0
add esp, 0xc
sub ebx, 1
jne 0x10074d98
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret