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

Disassembly:
sub esp, 0x21c
push ebx
push ebp
mov ebp, dword [esp + 0x230]
push esi
xor eax, eax
push edi
mov bl, byte [ebp]
mov edi, dword [esp + 0x230]
cmp bl, 0xc
lea ecx, [esp + 0x64]
sete al
push ecx
push edi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x6c], 0xffdb
call fcn.1008a050
cmp eax, 2
je 0x1009a9a2
push eax
push 2
push 0xfffff7e8
push 0xebc
push str.C:_accusoftgear_source_filtersJPGWRITE.C
call fcn.10046940
mov dword [esp + 0x14], eax
lea edx, [esp + 0x58]
mov dword [esp + 0x58], 0x84
push edx
push edi
call fcn.1008a050
mov esi, eax
lea eax, [esp + 0x13]
push eax
push edi
mov byte [esp + 0x1b], 0
call fcn.1008a0d0
add esi, eax
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x248]
test esi, esi
je 0x1009a9e1
push edi
call fcn.10089fa0
mov dword [esi + 0xc], eax
lea ecx, [esp + 0x15c]
mov eax, 0x101125d8
mov esi, 0x40
movsx edx, word [eax]
add eax, 2
inc ecx
mov dl, byte [edx + 0x10113308]
dec esi
mov byte [ecx - 1], dl
jne 0x1009a9f2
mov eax, dword [esp + 0x23c]
lea edx, [esp + 0x15c]
mov ecx, dword [eax + 0x14]
push ecx
push edx
call fcn.10096780
push edi
call fcn.1008a2a0
test eax, eax
je 0x1009aa49
lea eax, [esp + 0x15c]
push 0x40
lea ecx, [esp + 0x3c]
push eax
push ecx
push 0xd0
push edi
mov dword [esp + 0x4c], 0xd
call fcn.1008a440
lea eax, [esp + 0x15c]
mov ecx, 0x101125d8
mov esi, 0x40
movsx ebx, word [ecx]
xor edx, edx
add ecx, 2
mov dl, byte [eax]
inc eax
dec esi
mov dword [ebp + ebx*4 + 0x8c], edx
jne 0x1009aa5a
lea eax, [esp + 0x15c]
push 0x40
push eax
push edi
call fcn.10089e60
lea ecx, [esp + 0x13]
mov byte [esp + 0x13], 1
mov esi, dword [esp + 0x18]
push ecx
push edi
add esi, eax
call fcn.1008a0d0
add esi, eax
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x248]
test esi, esi
je 0x1009aab8
push edi
call fcn.10089fa0
push edi
mov dword [esi + 0x10], eax
call fcn.10089fa0
mov dword [esi + 0x14], eax
lea ecx, [esp + 0x15c]
mov eax, 0x101125d8
mov esi, 0x40
movsx edx, word [eax]
add eax, 2
inc ecx
mov dl, byte [edx + 0x10113348]
dec esi
mov byte [ecx - 1], dl
jne 0x1009aac9
mov eax, dword [esp + 0x23c]
lea edx, [esp + 0x15c]
mov ecx, dword [eax + 0x14]
push ecx
push edx
call fcn.10096780
push edi
call fcn.1008a2a0
test eax, eax
je 0x1009ab20
lea eax, [esp + 0x15c]
push 0x40
lea ecx, [esp + 0x3c]
push eax
push ecx
push 0xd1
push edi
mov dword [esp + 0x4c], 0xd
call fcn.1008a440
lea eax, [esp + 0x15c]
mov ecx, 0x101125d8
mov esi, 0x40
movsx ebx, word [ecx]
xor edx, edx
add ecx, 2
mov dl, byte [eax]
inc eax
dec esi
mov dword [ebp + ebx*4 + 0x18c], edx
jne 0x1009ab31
lea eax, [esp + 0x15c]
push 0x40
push eax
push edi
call fcn.10089e60
mov ecx, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x58]
and eax, 0xffff
cmp eax, ecx
je 0x1009ab83
push ecx
push eax
push 0xfffff7e8
push 0xf02
push str.C:_accusoftgear_source_filtersJPGWRITE.C
call fcn.10046940
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, ecx
jne 0x1009b23a
mov edx, dword [esp + 0x240]
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x128], ecx
mov ax, word [edx + 8]
mov bx, word [edx + 4]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x58bc]
mov edx, dword [ebp + 0x58b8]
mov dword [esp + 0x24], eax
mov al, byte [ebp + 6]
mov dword [esp + 0xf0], ecx
mov byte [esp + 0x1f], al
mov dword [esp + 0xb8], ecx
movzx ax, al
cmp ax, cx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x114], ecx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], edx
mov word [esp + 0x10], ax
jle 0x1009ac7a
movsx eax, ax
lea edi, [esp + 0x6c]
lea ecx, [esp + 0x8c]
lea esi, [ebp + 8]
lea edx, [ebp + 0x58cc]
mov dword [esp + 0x20], eax
xor eax, eax
add ecx, 0x38
mov al, byte [esi]
add esi, 3
mov ebx, eax
and eax, 0xf
shr ebx, 4
mov dword [ecx - 0x3c], ebx
mov dword [ecx - 0x38], eax
xor eax, eax
add edi, 4
mov al, byte [esi - 2]
shl eax, 8
lea eax, [eax + ebp + 0x8c]
mov dword [ecx - 0x40], eax
lea eax, [edx - 0xc]
mov dword [edi - 4], eax
mov eax, dword [esp + 0x20]
mov dword [edx + 4], 0
mov dword [edx], 0
add edx, 0x18
dec eax
mov dword [esp + 0x20], eax
jne 0x1009ac28
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
shl ecx, 3
lea eax, [edx*8]
mov edi, dword [esp + 0x234]
mov dword [esp + 0x5c], eax
lea eax, [ebx + ecx - 1]
cdq
idiv ecx
xor ebp, ebp
mov dword [esp + 0x68], ecx
imul eax, ecx
cmp word [esp + 0x10], bp
mov dword [esp + 0x44], eax
jle 0x1009ae63
movsx ecx, bp
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
lea esi, [ecx*8]
sub esi, ecx
shl esi, 3
imul edx, dword [esp + esi + 0x88]
lea eax, [edx + edi - 1]
cdq
idiv edi
mov edi, dword [esp + 0x24]
mov dword [esp + esi + 0xac], eax
mov eax, dword [esp + 0x30]
imul eax, dword [esp + esi + 0x8c]
lea eax, [eax + edi - 1]
cdq
idiv edi
mov dword [esp + esi + 0xb0], eax
mov edi, dword [esp + esi + 0x88]
mov edx, dword [esp + esi + 0xac]
lea ebx, [edi*8]
lea eax, [edx + ebx - 1]
cdq
idiv ebx
imul eax, edi
shl eax, 3
mov dword [esp + esi + 0xac], eax
mov edi, dword [esp + esi + 0x8c]
mov eax, dword [esp + esi + 0xb0]
lea ebx, [edi*8]
lea eax, [eax + ebx - 1]
cdq
idiv ebx
imul eax, edi
shl eax, 3
mov dword [esp + esi + 0xb0], eax
mov eax, dword [esp + esi + 0xac]
lea edx, [eax*8]
mov dword [esp + ecx*4 + 0x19c], edx
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1009ad94
mov ecx, dword [esp + esi + 0x8c]
mov edi, dword [esp + 0x234]
imul ecx, eax
shl ecx, 4
push ecx
push edi
call fcn.100a0c80
mov dword [esp + esi + 0x80], eax
jmp 0x1009adbd
mov edx, dword [esp + esi + 0x8c]
imul edx, eax
mov eax, dword [esp + 0x234]
shl edx, 3
push edx
push eax
call fcn.100a0c80
mov dword [esp + esi + 0x80], eax
mov edi, dword [esp + 0x234]
mov eax, dword [esp + esi + 0x80]
test eax, eax
je 0x1009ae1c
mov ecx, dword [esp + esi + 0xac]
shl ecx, 1
push ecx
push edi
call fcn.100a0c80
test eax, eax
mov dword [esp + esi + 0xa4], eax
je 0x1009ae2b
mov eax, dword [esp + 0x28]
mov word [esp + esi + 0x7c], 0
cdq
idiv dword [esp + esi + 0x88]
mov ecx, eax
mov eax, dword [esp + 0x24]
cdq
idiv dword [esp + esi + 0x8c]
imul ecx, eax
inc ebp
mov dword [esp + esi + 0xa8], ecx
cmp bp, word [esp + 0x10]
jl 0x1009acb6
jmp 0x1009ae58
push edi
push 0xd
push 0xfffffc18
push 0xf2c
jmp 0x1009ae4a
movsx eax, bp
mov edx, eax
push edi
shl edx, 3
sub edx, eax
mov eax, dword [esp + edx*8 + 0xb0]
shl eax, 1
push eax
push 0xfffffc18
push 0xf32
push str.C:_accusoftgear_source_filtersJPGWRITE.C
call fcn.10046940
mov dword [esp + 0x14], eax
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x234]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x1009b23a
mov esi, dword [esp + 0x248]
test esi, esi
je 0x1009ae8a
mov ecx, dword [esp + 0x230]
push ecx
call fcn.10089fa0
mov dword [esi + 0x40], eax
mov esi, dword [esp + 0x240]
push esi
call fcn.10032bc0
mov ebp, eax
push esi
mov dword [esp + 0x44], ebp
call fcn.10032b80
cmp eax, 8
mov dword [esp + 0x60], eax
jne 0x1009aef5
lea esi, [ebx + ebx*2 + 0x10]
push esi
push edi
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x18], eax
jne 0x1009aed5
push edi
push esi
push 0xfffffc18
push 0xf4f
push str.C:_accusoftgear_source_filtersJPGWRITE.C
call fcn.10046940
lea esi, [ebp + 0x10]
push esi
push edi
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x50], eax
jne 0x1009af25
push edi
push esi
push 0xfffffc18
push 0xf55
jmp 0x1009af1b
lea esi, [ebp + 0x10]
mov dword [esp + 0x50], 0
push esi
push edi
call fcn.100a0c80
test eax, eax
mov dword [esp + 0x18], eax
jne 0x1009af25
push edi
push esi
push 0xfffffc18
push 0xf5d
push str.C:_accusoftgear_source_filtersJPGWRITE.C
call fcn.10046940
mov ecx, dword [esp + 0x30]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x14], eax
jle 0x1009b1fe
jmp 0x1009af3d
mov eax, dword [esp + 0x14]
cmp word [esp + 0x10], 0
jle 0x1009af77
movsx ebp, word [esp + 0x10]
lea edi, [esp + 0x6c]
lea esi, [esp + 0x8c]
mov ecx, dword [edi]
add esi, 0x38
add edi, 4
mov dword [ecx + 0xc], 0
imul eax, dword [esi - 0x38]
cdq
idiv dword [esp + 0x5c]
dec ebp
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x14]
jne 0x1009af55
cmp byte [esp + 0x1f], 3
jne 0x1009afc7
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x58]
push ebx
push edx
mov edx, dword [esp + 0x254]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x40]
push edx
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x254]
push edx
push eax
lea eax, [esp + 0xa8]
push eax
push ecx
call fcn.100967f0
jmp 0x1009b043
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x1009b006
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x20]
push ebx
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push ecx
push eax
mov eax, dword [esp + 0x250]
lea edx, [esp + 0x9c]
push edx
push eax
call fcn.10096d10
jmp 0x1009b043
mov ecx, dword [esp + 0x244]
mov edx, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x34]
push edx
mov edx, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x24]
push ebx
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x40]
push edx
push ecx
push eax
mov eax, dword [esp + 0x254]
lea edx, [esp + 0xa0]
push edx
push eax
call fcn.10096bc0
test eax, eax
jne 0x1009b1f7
mov cx, word [esp + 0x10]
test cx, cx
jle 0x1009b06a
lea eax, [esp + 0xa0]
movsx ecx, cx
mov edx, dword [eax - 0x20]
mov dword [eax], edx
add eax, 0x38
dec ecx
jne 0x1009b05f
mov eax, ebx
test ebx, ebx
mov dword [esp + 0x54], eax
jle 0x1009b1dd
cmp word [esp + 0x10], 0
jle 0x1009b1c9
movsx eax, word [esp + 0x10]
xor ecx, ecx
lea esi, [esp + 0xac]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], eax
mov eax, dword [esi - 0x20]
xor ebx, ebx
cmp eax, ebx
mov dword [esp + 0x48], ebx
jle 0x1009b177
lea eax, [esi - 0x24]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x3c]
xor edi, edi
cmp dword [edx], 0
jle 0x1009b15a
mov eax, dword [esp + 0x20]
mov ebp, dword [esp + eax + 0x6c]
lea eax, [esi - 0x24]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x1ac]
test eax, eax
mov eax, dword [esi]
mov edx, ebx
push eax
push ecx
je 0x1009b0fa
imul edx, eax
mov ecx, dword [esi - 0xc]
add edx, edi
shl edx, 4
add edx, ecx
push edx
call fcn.10029b90
jmp 0x1009b10b
imul edx, eax
mov eax, dword [esi - 0xc]
add edx, edi
lea ecx, [eax + edx*8]
push ecx
call fcn.10027750
mov edx, dword [esi - 0x28]
lea eax, [esp + 0x1ac]
push edx
push eax
call fcn.100972f0
lea ecx, [esp + 0x1ac]
push 0x80
push ecx
mov ecx, dword [ebp + 0x10]
mov edx, ebx
add edx, ecx
mov ecx, dword [ebp + 0xc]
imul edx, dword [ebp + 4]
add edx, edi
add edx, ecx
mov ecx, dword [ebp + 0x14]
shl edx, 7
add edx, ecx
push edx
call fcn.100a98d0
inc edi
mov eax, dword [esp + 0x3c]
cmp edi, dword [eax]
jl 0x1009b0d0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + ecx + 0x19c]
mov edi, dword [esp + 0x48]
mov eax, dword [esi - 0x20]
inc ebx
add edi, edx
cmp ebx, eax
mov dword [esp + 0x48], edi
jl 0x1009b0b2
mov eax, dword [esp + 0x34]
test eax, eax
je 0x1009b18f
mov eax, dword [esi - 0x24]
mov edx, dword [esi - 0xc]
shl eax, 4
add edx, eax
mov dword [esi - 0xc], edx
jmp 0x1009b19d
mov edx, dword [esi - 0x24]
mov eax, dword [esi - 0xc]
shl edx, 3
add eax, edx
mov dword [esi - 0xc], eax
mov eax, dword [esp + ecx + 0x6c]
mov edx, dword [esi - 0x24]
add esi, 0x38
add ecx, 4
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x20], ecx
add ebx, edx
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x4c]
dec eax
mov dword [esp + 0x4c], eax
jne 0x1009b09a
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x68]
test eax, eax
mov dword [esp + 0x54], eax
jg 0x1009b078
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x30]
add eax, edx
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x1009af39
mov edi, dword [esp + 0x234]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1009b20d
push eax
push edi
call fcn.100a1010
lea esi, [esp + 0xa4]
mov ebx, 4
mov eax, dword [esi - 0x24]
test eax, eax
je 0x1009b227
push eax
push edi
call fcn.100a1010
mov eax, dword [esi]
test eax, eax
je 0x1009b234
push eax
push edi
call fcn.100a1010
add esi, 0x38
dec ebx
jne 0x1009b219
call fcn.10046b40
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x21c
ret 0x1c