Function at 0x418830
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4991b0]
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.0045cc90
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 0x4188b3
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.0045fb11
add esp, 8
push 0x481e18
mov edx, dword [ebp + 8]
push edx
call fcn.0045d488
add esp, 8
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x4188f2
xor eax, eax
jmp 0x418a49
mov eax, dword [ebp - 0x4c]
push eax
push 2
push 1
push 0x481e1c
call fcn.0045d8b6
add esp, 0x10
mov ecx, dword [ebp - 0x4c]
push ecx
push 0x34
push 1
lea edx, [ebp - 0x3c]
push edx
call fcn.0045d8b6
add esp, 0x10
mov eax, dword [ebp - 0x44]
push eax
push 1
call fcn.0045fad1
add esp, 8
mov dword [ebp - 0x48], eax
cmp dword [ebp - 0x48], 0
jne 0x418947
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
push edx
call fcn.0045e814
add esp, 4
xor eax, eax
jmp 0x418a49
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 8]
sub ecx, 1
mov dword [ebp - 0x40], ecx
jmp 0x41895e
mov edx, dword [ebp - 0x40]
sub edx, 1
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], 0
jl 0x418a31
mov dword [ebp - 4], 0
jmp 0x41897a
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 0x418a16
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 0x418971
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.0045d8b6
add esp, 0x10
jmp 0x418955
mov eax, dword [ebp - 0x48]
push eax
call fcn.0045e814
add esp, 4
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.0045d22c
add esp, 4
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0045c94d
mov esp, ebp
pop ebp
ret 4