Function at 0x471620
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x18
push ebp
mov ebp, dword [esp + 0x24]
push esi
xor esi, esi
cmp ebp, esi
jne 0x471637
pop esi
xor eax, eax
pop ebp
add esp, 0x18
ret
push ebp
call fcn.00474a30
add esp, 4
test eax, eax
jne 0x47164a
pop esi
pop ebp
add esp, 0x18
ret
mov eax, dword [ebp]
push ebx
mov ebx, 1
push edi
cmp eax, ebx
mov dword [esp + 0x10], esi
jne 0x4716bf
mov eax, dword [esp + 0x2c]
mov ebp, dword [ebp + 4]
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov edi, ebx
jle 0x471816
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
lea esi, [esp + 0x3c]
mov eax, dword [esi]
lea edx, [esp + 0x20]
push 0
push edx
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
push eax
push ecx
push ebp
call ebx
test eax, eax
je 0x4716ab
mov eax, dword [esp + 0x2c]
inc edi
add esi, 0xc
cmp edi, eax
jl 0x47167b
mov eax, dword [esp + 0x10]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x18
ret
pop edi
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop ebx
pop esi
pop ebp
add esp, 0x18
ret
cmp eax, 2
jne 0x471702
mov eax, dword [esp + 0x2c]
mov ebp, dword [ebp + 4]
cmp eax, ebx
mov dword [esp + 0x10], ebx
jle 0x471816
lea esi, [esp + 0x3c]
lea edi, [eax - 1]
mov eax, dword [esi]
mov edx, dword [ebp]
mov ecx, dword [eax + 4]
add eax, 8
push ecx
push eax
mov ecx, ebp
call dword [edx + 0x24]
add esi, 0xc
dec edi
jne 0x4716de
mov eax, dword [esp + 0x10]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x18
ret
cmp eax, 3
jne 0x471816
mov edi, dword [esp + 0x2c]
mov edx, dword [ebp + 4]
xor ecx, ecx
cmp edi, ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], ebx
jle 0x471756
lea edx, [esp + 0x3c]
lea esi, [edi - 1]
mov eax, dword [edx]
mov eax, dword [eax + 4]
test eax, eax
jle 0x47173a
cmp ecx, eax
jg 0x47173a
mov ecx, eax
add edx, 0xc
dec esi
jne 0x47172b
test ecx, ecx
jle 0x471756
push ecx
call fcn.0048bb29
add esp, 4
mov dword [esp + 0x14], eax
mov ebx, 1
cmp edi, ebx
mov dword [esp + 0x20], ebx
jle 0x471809
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov eax, dword [edx]
mov ebx, dword [eax + 4]
test ebx, ebx
jle 0x4717d6
mov edi, dword [esp + 0x14]
mov ecx, ebx
lea esi, [eax + 8]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 1
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x24]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x14]
lea edx, [ebp + 0x10]
push edx
lea edx, [ebp + 0x34]
push ecx
push edx
push ebx
push esi
push eax
call fcn.004744f0
mov ecx, dword [esp + 0x34]
add esp, 0x18
lea eax, [esp + 0x24]
push 0
push eax
push ebx
push esi
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4717f4
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
inc eax
add edx, 0xc
cmp eax, edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
jl 0x47176a
jmp 0x471809
mov edx, dword [esp + 0x14]
push edx
call fcn.0048bb52
add esp, 4
mov dword [esp + 0x10], 0
mov eax, dword [esp + 0x14]
push eax
call fcn.0048bb52
add esp, 4
mov eax, dword [esp + 0x10]
pop edi
pop ebx
pop esi
pop ebp
add esp, 0x18
ret