Function at 0x1003c5d0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x80
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x94]
lea eax, [esp + 0x3c]
push 0
lea ecx, [esp + 0x54]
mov edx, dword [edi]
push eax
push ecx
push edx
call fcn.10084750
mov ecx, dword [esp + 0xa4]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0x74], edx
mov edx, dword [ecx + 8]
mov dword [esp + 0x78], edx
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xa8]
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov ebx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x8c], ecx
mov ecx, dword [edi + 0x74]
sub ecx, dword [edi + 0x6c]
mov edi, edx
mov edx, dword [esp + 0x94]
sub edi, eax
mov dword [esp + 0x18], ecx
mov eax, dword [edx]
push eax
call sym.GEAR32PO.OCX_GPb_height_get
sub eax, esi
dec eax
mov dword [esp + 0x84], eax
call fcn.100a0c60
mov esi, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov ecx, dword [esi]
push ecx
call sym.GEAR32PO.OCX_GPb_width_get
mov edx, dword [esi + 0x80]
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x48], edx
mov eax, dword [eax + ebp*4]
xor edx, edx
mov dword [esp + 0x1c], eax
add eax, edi
mov dword [esp + 0x44], eax
mov eax, ebx
sub eax, ebp
inc eax
div edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x50]
cmp eax, 5
mov eax, dword [esp + 0x3c]
je 0x1003c793
fld qword [0x100fc0c0]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
fild qword [esp + 0x58]
fmul qword [0x100fc0b0]
fsubr qword [0x100fc0b8]
fxch st(1)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x1003c6ec
fstp st(0)
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
jmp 0x1003c6f0
fstp qword [esp + 0x58]
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
lea ebx, [esp + 0x60]
mov dword [esp + 0x38], 2
cmp esi, 1
mov eax, esi
ja 0x1003c710
mov eax, 1
inc eax
cmp eax, 2
jbe 0x1003c725
cmp esi, 1
mov edi, esi
ja 0x1003c722
mov edi, 1
inc edi
jmp 0x1003c72a
mov edi, 2
lea ecx, [edi*4]
push ecx
push ebp
call fcn.100a0c80
xor ecx, ecx
mov dword [ebx], eax
test edi, edi
mov dword [esp + 0x14], ecx
jle 0x1003c77b
lea edx, [edi - 1]
mov dword [esp + 0x4c], edx
mov edx, eax
fild dword [esp + 0x4c]
fmul qword [esp + 0x58]
fild dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x1003c769
mov eax, 1
jmp 0x1003c76b
xor eax, eax
mov dword [edx], eax
inc ecx
add edx, 4
cmp ecx, edi
mov dword [esp + 0x14], ecx
jl 0x1003c755
fstp st(0)
mov eax, dword [esp + 0x38]
inc esi
add ebx, 4
dec eax
mov dword [esp + 0x38], eax
jne 0x1003c704
jmp 0x1003c840
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
fild qword [esp + 0x58]
mov esi, dword [esp + 0x20]
lea ebx, [esp + 0x60]
mov ebp, 2
fmul qword [0x100fc0b0]
fstp qword [esp + 0x58]
cmp esi, 1
mov eax, esi
ja 0x1003c7c6
mov eax, 1
inc eax
cmp eax, 2
jbe 0x1003c7db
cmp esi, 1
mov edi, esi
ja 0x1003c7d8
mov edi, 1
inc edi
jmp 0x1003c7e0
mov edi, 2
mov edx, dword [esp + 0x28]
lea ecx, [edi*4]
push ecx
push edx
call fcn.100a0c80
xor ecx, ecx
mov dword [ebx], eax
test edi, edi
mov dword [esp + 0x14], ecx
jle 0x1003c835
lea edx, [edi - 1]
mov dword [esp + 0x4c], edx
mov edx, eax
fild dword [esp + 0x4c]
fmul qword [esp + 0x58]
fild dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 1
je 0x1003c823
mov eax, 1
jmp 0x1003c825
xor eax, eax
mov dword [edx], eax
inc ecx
add edx, 4
cmp ecx, edi
mov dword [esp + 0x14], ecx
jl 0x1003c80f
fstp st(0)
inc esi
add ebx, 4
dec ebp
jne 0x1003c7ba
mov edi, dword [esp + 0x94]
mov esi, dword [esp + 0x20]
inc esi
mov eax, dword [edi + 0x10]
mov dword [esp + 0x20], esi
push eax
call fcn.10032b70
mov ecx, dword [edi + 0x10]
mov esi, eax
dec esi
push ecx
imul esi, dword [edi + 0x9c]
call fcn.10032ac0
add esi, eax
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x18]
lea edx, [esi + esi + 2]
push edx
push ebx
call fcn.100a0c80
push esi
push ebx
mov ebp, eax
call fcn.100a0c80
mov ebx, dword [edi + 0x74]
xor edi, edi
mov esi, dword [esp + 0x78]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
sub esi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x58], esi
mov ecx, dword [eax]
mov dword [esp + 0x30], edi
sub ecx, esi
cmp ecx, ebx
jge 0x1003c8c6
mov edx, dword [eax + 4]
add eax, 4
sub edx, esi
inc edi
cmp edx, ebx
jl 0x1003c8b5
mov dword [esp + 0x30], edi
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
add ecx, ebx
mov dword [esp + 0x24], edi
mov edx, dword [eax + edi*4]
lea eax, [eax + edi*4]
sub edx, esi
mov dword [esp + 0x54], eax
cmp edx, ecx
jge 0x1003c8f8
mov edx, dword [esp + 0x24]
add eax, 4
inc edx
mov dword [esp + 0x24], edx
mov edx, dword [eax]
sub edx, esi
cmp edx, ecx
jl 0x1003c8e4
mov eax, dword [esp + 0x94]
mov ecx, dword [eax]
push ecx
call sym.GEAR32PO.OCX_GPb_width_get
cmp dword [esp + 0x24], eax
jl 0x1003c920
mov edx, dword [esp + 0x94]
mov eax, dword [edx]
push eax
call sym.GEAR32PO.OCX_GPb_width_get
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
mov ecx, edi
xor edi, edi
test eax, eax
jle 0x1003c98d
mov eax, dword [esp + 0x40]
mov dword [esp + 0x4c], ecx
cmp ecx, eax
jge 0x1003c962
mov edx, dword [esp + 0x10]
mov eax, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
sub eax, esi
sub eax, ebx
mov ebx, dword [edx]
sub ebx, esi
sub ebx, dword [esp + 0x1c]
cmp ebx, eax
jne 0x1003c95e
mov ebx, dword [esp + 0x40]
inc ecx
add edx, 4
cmp ecx, ebx
jl 0x1003c946
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
mov eax, ecx
sub eax, edx
mov edx, dword [esp + 0x20]
cmp eax, edx
jne 0x1003c97c
mov edx, dword [esp + 0x2c]
mov byte [edi + edx], 1
jmp 0x1003c984
mov eax, dword [esp + 0x2c]
mov byte [edi + eax], 0
mov eax, dword [esp + 0x18]
inc edi
cmp edi, eax
jl 0x1003c92c
mov ecx, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
cmp ecx, eax
jge 0x1003cc6a
mov edx, dword [esp + 0x48]
sub eax, ecx
mov dword [esp + 0x4c], eax
lea edx, [edx + ecx*4]
mov dword [esp + 0x38], edx
jmp 0x1003c9ba
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edi, ebp
lea ecx, [eax + eax]
xor eax, eax
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov edx, dword [esp + 0x94]
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x84]
sub eax, dword [ecx]
push eax
mov eax, dword [edx]
push eax
call sym.GEAR32PO.OCX_GPb_image_run_row_get
lea edx, [eax + 2]
xor ecx, ecx
mov edi, dword [esp + 0x10]
mov cx, word [edx]
mov ecx, dword [edi + ecx*4]
sub ecx, esi
cmp ecx, ebx
jge 0x1003ca18
mov ecx, edi
add edx, 2
xor edi, edi
mov di, word [edx]
mov edi, dword [ecx + edi*4]
sub edi, esi
cmp edi, ebx
jl 0x1003ca07
mov ecx, edx
sub ecx, eax
sub ecx, 2
test cl, 2
je 0x1003ca61
mov ecx, dword [esp + 0x24]
xor eax, eax
mov ax, word [edx]
cmp eax, ecx
jl 0x1003ca33
mov eax, ecx
cmp dword [esp + 0x30], eax
jge 0x1003ca5e
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x54]
sub eax, edi
mov edi, eax
mov eax, dword [ecx]
mov ebx, dword [esp + 0x1c]
sub eax, esi
add ecx, 4
sub eax, ebx
inc word [ebp + eax*2]
dec edi
lea eax, [ebp + eax*2]
jne 0x1003ca45
add edx, 2
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x44]
xor eax, eax
mov ax, word [edx]
cmp dword [edi + eax*4], ecx
jge 0x1003cabc
mov ecx, dword [esp + 0x24]
xor edi, edi
mov di, word [edx + 2]
cmp edi, ecx
jl 0x1003ca83
mov edi, ecx
cmp eax, edi
jge 0x1003caa5
mov ecx, dword [esp + 0x10]
sub edi, eax
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
add ecx, 4
sub eax, esi
sub eax, ebx
inc word [ebp + eax*2]
dec edi
lea eax, [ebp + eax*2]
jne 0x1003ca90
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x44]
add edx, 4
xor eax, eax
mov ax, word [edx]
mov ecx, dword [ecx + eax*4]
cmp ecx, edi
jl 0x1003ca73
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
cmp eax, 8
mov dword [esp + 0x40], edi
lea edx, [eax - 1]
mov dword [esp + 0x20], 0
mov dword [esp + 0x14], edx
jl 0x1003cbe7
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x48], 8
lea esi, [eax + edx]
lea eax, [edx + edx]
xor ebx, ebx
xor ecx, ecx
mov bl, byte [esi]
mov cl, byte [esi - 1]
xor edi, edi
xor edx, edx
mov di, word [ebp + eax]
mov ebx, dword [esp + ebx*4 + 0x60]
mov dx, word [ebp + eax - 2]
mov ecx, dword [esp + ecx*4 + 0x60]
mov bl, byte [ebx + edi*4]
sub eax, 0x10
mov dl, byte [ecx + edx*4]
xor ecx, ecx
shl bl, 1
mov cx, word [ebp + eax + 0xc]
or dl, bl
xor ebx, ebx
mov bl, byte [esi - 2]
sub esi, 8
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
xor ecx, ecx
mov cx, word [ebp + eax + 0xa]
or dl, bl
xor ebx, ebx
mov bl, byte [esi + 5]
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
xor ecx, ecx
mov cx, word [ebp + eax + 8]
or dl, bl
xor ebx, ebx
mov bl, byte [esi + 4]
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
xor ecx, ecx
mov cx, word [ebp + eax + 6]
or dl, bl
xor ebx, ebx
mov bl, byte [esi + 3]
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
xor ecx, ecx
mov cx, word [ebp + eax + 4]
or dl, bl
xor ebx, ebx
mov bl, byte [esi + 2]
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
xor ecx, ecx
mov cx, word [ebp + eax + 2]
or dl, bl
xor ebx, ebx
mov bl, byte [esi + 1]
shl dl, 1
mov edi, dword [esp + ebx*4 + 0x60]
mov bl, byte [edi + ecx*4]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
add ecx, 8
or dl, bl
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x48]
mov byte [edi], dl
mov edx, dword [esp + 0x14]
add ecx, 8
inc edi
sub edx, 8
cmp ecx, ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x48], ecx
jle 0x1003caf2
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
cmp ecx, eax
jge 0x1003cc39
test edx, edx
mov byte [edi], 0
mov dword [esp + 0x20], 7
jl 0x1003cc39
lea eax, [ebp + edx*2]
mov ebx, dword [esp + 0x2c]
xor ecx, ecx
sub eax, 2
mov cl, byte [ebx + edx]
xor ebx, ebx
mov bx, word [eax + 2]
mov ecx, dword [esp + ecx*4 + 0x60]
mov bl, byte [ecx + ebx*4]
mov ecx, dword [esp + 0x20]
shl bl, cl
mov cl, byte [edi]
or cl, bl
mov ebx, dword [esp + 0x20]
dec edx
dec ebx
test edx, edx
mov byte [edi], cl
mov dword [esp + 0x20], ebx
jge 0x1003cc06
mov edx, dword [esp + 0x94]
mov ecx, dword [esp + 0x38]
add ecx, 4
mov eax, dword [edx + 0x9c]
mov edx, dword [esp + 0x34]
sub edx, eax
mov eax, dword [esp + 0x4c]
dec eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x4c], eax
jne 0x1003c9b6
test ebp, ebp
je 0x1003cc79
mov ecx, dword [esp + 0x28]
push ebp
push ecx
call fcn.100a1010
mov edx, dword [esp + 0x28]
push edx
call fcn.100a12c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x80
ret 0x18