Function at 0x471c50
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4350
call fcn.004cd140
mov eax, dword [0x5402b0]
xor eax, ebp
mov dword [ebp - 8], eax
cmp dword [ecx + 4], 0xffffffff
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, edx
mov dword [ebp - 0x434c], ecx
mov dword [ebp - 0x4350], esi
je 0x471c8e
mov ebx, dword [ecx]
call fcn.00471530
mov ecx, dword [ebp - 0x434c]
mov eax, dword [ecx]
mov dword [ecx + 4], 0xffffffff
cmp edi, dword [eax + 4]
jl 0x471cb4
mov eax, 0x10000
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004c0985
mov esp, ebp
pop ebp
ret 4
cmp edi, dword [eax + 0x10]
jge 0x471ccc
mov esi, eax
call fcn.00471060
mov esi, dword [ebp - 0x4350]
mov ecx, dword [ebp - 0x434c]
mov eax, dword [ecx]
cmp dword [eax + 0x10], edi
jge 0x471ced
mov esi, dword [ecx]
call fcn.004710a0
mov ecx, dword [ebp - 0x434c]
mov edx, dword [ecx]
cmp dword [edx + 0x10], edi
jl 0x471cd3
mov esi, dword [ebp - 0x4350]
push edi
lea edx, [ebp - 0x4344]
call fcn.004716a0
test byte [ebp - 0x423c], 0x10
je 0x471d44
lea eax, [ebp - 0x4340]
push eax
lea esi, [ebp - 0x214]
call fcn.004707a0
mov edx, dword [ebp - 0x434c]
add esp, 4
mov ecx, esi
push ecx
add edx, 0x138
push edx
call fcn.00471b50
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004c0985
mov esp, ebp
pop ebp
ret 4
movzx eax, word [esi]
mov edi, esi
mov ecx, esi
test ax, ax
je 0x471e16
movzx eax, ax
cmp ax, 0x2f
je 0x471d63
cmp ax, 0x5c
jne 0x471d66
lea edi, [ecx + 2]
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x471d57
cmp edi, esi
je 0x471e16
lea edx, [ebp - 0x214]
mov eax, esi
sub edx, esi
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x471d84
sub edi, esi
xor eax, eax
sar edi, 1
mov word [ebp + edi*2 - 0x216], ax
mov ax, word [ebp - 0x214]
cmp ax, 0x2f
je 0x471dc2
cmp ax, 0x5c
je 0x471dc2
cmp word [ebp - 0x212], 0x3a
je 0x471dc2
xor bl, bl
jmp 0x471dc4
mov bl, 1
lea ecx, [ebp - 0x214]
push 0x525474
push ecx
call fcn.004c28da
lea edx, [ebp - 0x214]
push 0x52547c
push edx
mov edi, eax
call fcn.004c28da
add esp, 0x10
test eax, eax
setne al
test edi, edi
setne cl
or al, cl
or al, bl
jne 0x471e16
mov eax, dword [ebp - 0x434c]
lea edx, [ebp - 0x214]
push edx
add eax, 0x138
push eax
call fcn.00471b50
add esp, 8
mov ecx, dword [ebp - 0x423c]
push 0
push ecx
push 2
push 0
push 0
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x471e50
mov eax, 0x200
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004c0985
mov esp, ebp
pop ebp
ret 4
mov edi, dword [ebp - 0x434c]
mov eax, dword [edi]
call fcn.004712c0
mov eax, dword [edi]
lea edx, [ebp - 0x4214]
push edx
mov ecx, 0x4000
mov byte [ebp - 0x4345], 0
call fcn.004713c0
add esp, 4
test eax, eax
jl 0x471eb8
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
je 0x471ebf
push 0
lea ecx, [ebp - 0x4350]
push ecx
push eax
lea edx, [ebp - 0x4214]
push edx
push esi
call ebx
test eax, eax
je 0x471eb8
lea eax, [ebp - 0x4214]
push eax
mov eax, dword [edi]
mov ecx, 0x4000
call fcn.004713c0
add esp, 4
test eax, eax
jge 0x471e84
mov byte [ebp - 0x4345], 1
push esi
call dword [sym.imp.KERNEL32.dll_GetFileType]
cmp eax, 1
jne 0x471ef0
cmp byte [ebp - 0x4345], 0
jne 0x471ef0
lea ecx, [ebp - 0x4228]
push ecx
lea edx, [ebp - 0x4238]
push edx
lea eax, [ebp - 0x4230]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [edi]
call fcn.00471530
movzx eax, byte [ebp - 0x4345]
mov ecx, dword [ebp - 8]
neg eax
pop edi
sbb eax, eax
pop esi
xor ecx, ebp
and eax, 0x400
pop ebx
call fcn.004c0985
mov esp, ebp
pop ebp
ret 4