Function at 0x418a60
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x49a1b0]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 0x50], ecx
push 0x34
push 0
lea eax, [ebp - 0x3c]
push eax
call fcn.0045d100
add esp, 0xc
mov dword [ebp - 0x34], 0x36
mov dword [ebp - 0x30], 0x28
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
mov dword [ebp - 0x28], ecx
mov edx, 1
mov word [ebp - 0x24], dx
mov eax, 0x18
mov word [ebp - 0x22], ax
mov dword [ebp - 0x20], 0
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 4]
imul edx, edx, 3
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
and eax, 3
je 0x418ae3
mov ecx, dword [ebp - 0x44]
or ecx, 3
mov dword [ebp - 0x44], ecx
mov edx, dword [ebp - 0x44]
add edx, 1
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
imul eax, dword [ebp - 0x28]
add eax, dword [ebp - 0x34]
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0x44]
push ecx
push str.Bytes_per_line_:__d_n
call fcn.0045ff81
add esp, 8
push 0x482788
mov edx, dword [ebp + 8]
push edx
call fcn.0045d8f8
add esp, 8
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x418b22
xor eax, eax
jmp 0x418c79
mov eax, dword [ebp - 0x4c]
push eax
push 2
push 1
push 0x48278c
call fcn.0045dd26
add esp, 0x10
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x34
push 1
lea edx, [ebp - 0x3c]
push edx
call fcn.0045dd26
add esp, 0x10
mov eax, dword [ebp - 0x44]
push eax
push 1
call fcn.0045ff41
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x418b77
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.0045ec84
add esp, 4
xor eax, eax
jmp 0x418c79
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x40], ecx
jmp 0x418b8e
mov edx, dword [ebp - 0x40]
sub edx, 1
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], 0
jl 0x418c61
mov dword [ebp - 4], 0
jmp 0x418baa
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 4]
jge 0x418c46
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x40]
imul ecx, dword [eax + 4]
add ecx, dword [ebp - 4]
mov edx, dword [ebp - 0x50]
imul ecx, dword [edx + 0xc]
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov eax, dword [ebp - 0x50]
mov esi, dword [ebp - 4]
imul esi, dword [eax + 0xc]
mov eax, dword [ebp - 0x48]
mov cl, byte [edx + ecx + 2]
mov byte [eax + esi], cl
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x40]
imul eax, dword [edx + 4]
add eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x50]
imul eax, dword [ecx + 0xc]
mov edx, dword [ebp - 0x50]
mov ecx, dword [edx]
mov edx, dword [ebp - 0x50]
mov esi, dword [ebp - 4]
imul esi, dword [edx + 0xc]
mov edx, dword [ebp - 0x48]
mov al, byte [ecx + eax + 1]
mov byte [edx + esi + 1], al
mov ecx, dword [ebp - 0x50]
mov edx, dword [ebp - 0x40]
imul edx, dword [ecx + 4]
add edx, dword [ebp - 4]
mov eax, dword [ebp - 0x50]
imul edx, dword [eax + 0xc]
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x50]
mov esi, dword [ebp - 4]
imul esi, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x48]
mov dl, byte [edx + eax]
mov byte [ecx + esi + 2], dl
jmp 0x418ba1
mov eax, dword [ebp - 0x4c]
push eax
mov ecx, dword [ebp - 0x44]
push ecx
push 1
mov edx, dword [ebp - 0x48]
push edx
call fcn.0045dd26
add esp, 0x10
jmp 0x418b85
mov eax, dword [ebp - 0x48]
push eax
call fcn.0045ec84
add esp, 4
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0045d69c
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0045cdbc
mov esp, ebp
pop ebp
ret 4