Function at 0x4ae000
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc4
mov eax, dword [0x641a90]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
mov ebx, 0x5c2576
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0xc4], edi
movsx eax, word [esi + 0xaa]
sub eax, 5
je 0x4ae03d
dec eax
jne 0x4ae042
mov ebx, str.CMYK
jmp 0x4ae042
mov ebx, 0x5d4c24
lea eax, [ebp - 0xa8]
push eax
call fcn.00458dd0
lea ecx, [ebp - 0x84]
add esp, 4
sub ecx, ebx
lea esp, [esp]
mov al, byte [ebx]
lea ebx, [ebx + 1]
mov byte [ecx + ebx - 1], al
test al, al
jne 0x4ae060
movzx eax, word [esi + 0x24]
cmp ax, 1
je 0x4ae0b0
cmp ax, 2
je 0x4ae0b0
mov ecx, dword [esi + 0x2c]
cmp ax, 4
jne 0x4ae092
mov dword [ebp - 0x8c], 0x80100
jmp 0x4ae0bc
lea eax, [ecx + ecx*2]
mov dword [ebp - 0x9c], 0x180001
mov dword [ebp - 0x90], eax
xor eax, eax
mov word [ebp - 0x8c], ax
jmp 0x4ae0cc
mov ecx, dword [esi + 0x2c]
xor eax, eax
mov word [ebp - 0x8c], ax
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x9c], 0x80001
xor ebx, ebx
mov dword [ebp - 0xc0], ebx
cmp word [esi + 0xa8], bx
je 0x4ae108
push 4
push ecx
call fcn.00592c0b
mov ebx, eax
add esp, 8
mov dword [ebp - 0xc0], ebx
test ebx, ebx
jne 0x4ae108
pop edi
pop esi
lea eax, [ebx + 1]
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005920c1
mov esp, ebp
pop ebp
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.00457000
movzx eax, ax
add esp, 8
mov dword [ebp - 0xbc], eax
test ax, ax
jne 0x4ae67d
movzx eax, word [esi + 0x24]
cmp ax, 1
je 0x4ae4bf
cmp ax, 2
je 0x4ae4bf
cmp ax, 4
jne 0x4ae32e
xor eax, eax
mov dword [ebp - 0xb8], eax
cmp dword [esi + 0x30], eax
jle 0x4ae65e
lea ecx, [ecx]
push 1
push eax
push esi
call fcn.00459620
add esp, 0xc
mov dword [ebp - 0xb4], 0
cmp word [esi + 0xa8], 0
jne 0x4ae24a
cmp dword [esi + 0x2c], 0
jle 0x4ae313
mov ebx, dword [ebp - 0xb4]
jmp 0x4ae1a0
mov eax, dword [ebp - 0xa0]
movzx ecx, byte [eax + ebx]
mov eax, dword [ebp - 0x88]
lea eax, [eax + ecx*2]
add ecx, eax
movzx eax, byte [ecx]
mov byte [ebp - 0xb0], al
movzx eax, byte [ecx + 1]
mov byte [ebp - 0xaf], al
movzx eax, byte [ecx + 2]
mov byte [ebp - 0xae], al
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004adf10
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, al
push eax
call fcn.005958b3
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, ah
push eax
call fcn.005958b3
push dword [edi]
movzx eax, byte [ebp - 0xaa]
push eax
call fcn.005958b3
add esp, 0x20
cmp word [esi + 0xaa], 6
jne 0x4ae235
push dword [edi]
movzx eax, byte [ebp - 0xa9]
push eax
call fcn.005958b3
add esp, 8
inc ebx
cmp ebx, dword [esi + 0x2c]
jl 0x4ae1a0
mov ebx, dword [ebp - 0xc0]
jmp 0x4ae313
cmp dword [esi + 0x2c], 0
jle 0x4ae2ec
mov edi, dword [ebp - 0xb4]
lea ebx, [ebx]
mov eax, dword [ebp - 0xa0]
movzx ecx, byte [eax + edi]
mov eax, dword [ebp - 0x88]
lea eax, [eax + ecx*2]
add ecx, eax
movzx eax, byte [ecx]
mov byte [ebp - 0xb0], al
movzx eax, byte [ecx + 1]
mov byte [ebp - 0xaf], al
movzx eax, byte [ecx + 2]
mov byte [ebp - 0xae], al
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004adf10
mov eax, dword [ebp - 0xac]
lea edx, [edi + ebx]
mov byte [edi + ebx], al
add esp, 8
mov ecx, dword [esi + 0x2c]
mov byte [edx + ecx], ah
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
movzx eax, byte [ebp - 0xaa]
mov byte [ecx + ebx], al
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
inc edi
add ecx, eax
movzx eax, byte [ebp - 0xa9]
mov byte [ecx + ebx], al
cmp edi, dword [esi + 0x2c]
jl 0x4ae260
mov edi, dword [ebp - 0xc4]
cmp word [esi + 0xaa], 6
push dword [edi]
jne 0x4ae2fc
push 4
jmp 0x4ae2fe
push 3
push dword [esi + 0x2c]
push ebx
call fcn.0059628c
add esp, 0x10
cmp eax, 3
jne 0x4ae4b5
mov eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0xb8], eax
cmp eax, dword [esi + 0x30]
jl 0x4ae160
jmp 0x4ae65e
xor eax, eax
mov dword [ebp - 0xb0], eax
cmp dword [esi + 0x30], eax
jle 0x4ae65e
nop
push 1
push eax
push esi
call fcn.00459620
add esp, 0xc
cmp word [esi + 0xa8], 0
jne 0x4ae3f5
cmp dword [esi + 0x2c], 0
jle 0x4ae49a
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
mov ebx, ecx
mov edi, edi
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa0]
add eax, ecx
push eax
call fcn.004adf10
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, al
push eax
call fcn.005958b3
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, ah
push eax
call fcn.005958b3
push dword [edi]
movzx eax, byte [ebp - 0xaa]
push eax
call fcn.005958b3
add esp, 0x20
cmp word [esi + 0xaa], 6
jne 0x4ae3d5
push dword [edi]
movzx eax, byte [ebp - 0xa9]
push eax
call fcn.005958b3
add esp, 8
mov ecx, dword [ebp - 0xb8]
inc ebx
add ecx, 3
mov dword [ebp - 0xb8], ecx
cmp ebx, dword [esi + 0x2c]
jl 0x4ae370
mov ebx, dword [ebp - 0xc0]
jmp 0x4ae49a
cmp dword [esi + 0x2c], 0
jle 0x4ae477
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
mov edi, ecx
jmp 0x4ae410
lea eax, [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa0]
add eax, ecx
push eax
call fcn.004adf10
mov eax, dword [ebp - 0xac]
lea edx, [edi + ebx]
mov byte [edi + ebx], al
add esp, 8
mov ecx, dword [esi + 0x2c]
mov byte [edx + ecx], ah
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
movzx eax, byte [ebp - 0xaa]
mov byte [ecx + ebx], al
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
inc edi
add ecx, eax
movzx eax, byte [ebp - 0xa9]
mov byte [ecx + ebx], al
mov ecx, dword [ebp - 0xb8]
add ecx, 3
mov dword [ebp - 0xb8], ecx
cmp edi, dword [esi + 0x2c]
jl 0x4ae410
mov edi, dword [ebp - 0xc4]
cmp word [esi + 0xaa], 6
push dword [edi]
jne 0x4ae487
push 4
jmp 0x4ae489
push 3
push dword [esi + 0x2c]
push ebx
call fcn.0059628c
add esp, 0x10
cmp eax, 3
jne 0x4ae4b5
mov eax, dword [ebp - 0xb0]
inc eax
mov dword [ebp - 0xb0], eax
cmp eax, dword [esi + 0x30]
jl 0x4ae340
jmp 0x4ae65e
mov edi, 6
jmp 0x4ae664
xor eax, eax
mov dword [ebp - 0xb8], eax
cmp dword [esi + 0x30], eax
jle 0x4ae65e
push 1
push eax
push esi
call fcn.00459620
add esp, 0xc
mov dword [ebp - 0xb4], 0
cmp word [esi + 0xa8], 0
jne 0x4ae5a3
cmp dword [esi + 0x2c], 0
jle 0x4ae648
mov ebx, dword [ebp - 0xb4]
jmp 0x4ae510
mov eax, dword [ebp - 0xa0]
mov al, byte [eax + ebx]
mov byte [ebp - 0xae], al
mov byte [ebp - 0xaf], al
mov byte [ebp - 0xb0], al
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004adf10
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, al
push eax
call fcn.005958b3
push dword [edi]
mov eax, dword [ebp - 0xac]
movzx eax, ah
push eax
call fcn.005958b3
push dword [edi]
movzx eax, byte [ebp - 0xaa]
push eax
call fcn.005958b3
add esp, 0x20
cmp word [esi + 0xaa], 6
jne 0x4ae58e
push dword [edi]
movzx eax, byte [ebp - 0xa9]
push eax
call fcn.005958b3
add esp, 8
inc ebx
cmp ebx, dword [esi + 0x2c]
jl 0x4ae510
mov ebx, dword [ebp - 0xc0]
jmp 0x4ae648
cmp dword [esi + 0x2c], 0
jle 0x4ae621
mov edi, dword [ebp - 0xb4]
nop
mov eax, dword [ebp - 0xa0]
mov al, byte [eax + edi]
mov byte [ebp - 0xae], al
mov byte [ebp - 0xaf], al
mov byte [ebp - 0xb0], al
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.004adf10
mov eax, dword [ebp - 0xac]
lea edx, [edi + ebx]
mov byte [edi + ebx], al
add esp, 8
mov ecx, dword [esi + 0x2c]
mov byte [edx + ecx], ah
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
movzx eax, byte [ebp - 0xaa]
mov byte [ecx + ebx], al
mov eax, dword [esi + 0x2c]
lea ecx, [edi + eax*2]
inc edi
add ecx, eax
movzx eax, byte [ebp - 0xa9]
mov byte [ecx + ebx], al
cmp edi, dword [esi + 0x2c]
jl 0x4ae5b0
mov edi, dword [ebp - 0xc4]
cmp word [esi + 0xaa], 6
push dword [edi]
jne 0x4ae631
push 4
jmp 0x4ae633
push 3
push dword [esi + 0x2c]
push ebx
call fcn.0059628c
add esp, 0x10
cmp eax, 3
jne 0x4ae4b5
mov eax, dword [ebp - 0xb8]
inc eax
mov dword [ebp - 0xb8], eax
cmp eax, dword [esi + 0x30]
jl 0x4ae4d0
mov edi, dword [ebp - 0xbc]
push esi
call fcn.00454fa0
add esp, 4
test ebx, ebx
je 0x4ae67a
push ebx
call fcn.00592c4b
add esp, 4
mov ax, di
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005920c1
mov esp, ebp
pop ebp
ret