Function at 0x4203f0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x340
mov eax, dword [0x4e42e0]
xor eax, esp
mov dword [esp + 0x33c], eax
push ebx
mov ebx, dword [esp + 0x34c]
push ebp
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x360]
cmp ecx, 3
je 0x42042b
cmp ecx, 2
je 0x42042b
cmp ecx, 1
jne 0x42057c
mov eax, dword [edi + 4]
cmp ecx, 3
jne 0x420558
mov ebp, dword [esp + 0x354]
cmp ebp, eax
je 0x4204e9
cmp eax, 0xffffffff
je 0x420455
push dword [edi]
call fcn.00423250
add esp, 4
mov eax, dword [edi]
mov dword [edi + 4], 0xffffffff
cmp ebp, dword [eax + 4]
jge 0x42057c
cmp dword [eax + 0x10], ebp
jle 0x42047a
push eax
call fcn.004232d0
mov eax, dword [edi]
add esp, 4
cmp dword [eax + 0x10], ebp
jge 0x4204d7
mov esi, eax
nop
mov eax, esi
test esi, esi
je 0x4204d0
cmp dword [esi + 0x18], 0
je 0x4204d0
mov edx, dword [esi + 0x10]
inc edx
cmp edx, dword [esi + 4]
je 0x4204d0
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x48]
add ecx, 0x2e
add ecx, dword [esi + 0x4c]
push 0
push 0
push 0
push 0
add eax, ecx
mov dword [esi + 0x10], edx
add dword [esi + 0x14], eax
lea eax, [esi + 0x78]
push 0
push 0
push eax
lea eax, [esi + 0x28]
push eax
push esi
call fcn.00423be0
add esp, 0x24
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [edi]
mov esi, eax
cmp dword [eax + 0x10], ebp
jl 0x420480
push dword [edi + 0x138]
push eax
call fcn.00423320
add esp, 8
mov dword [edi + 4], ebp
lea eax, [esp + 0x13]
push eax
push dword [esp + 0x360]
push ebx
push dword [edi]
call fcn.00423710
mov esi, eax
add esp, 0x10
test esi, esi
jg 0x420517
push dword [edi]
call fcn.00423250
add esp, 4
mov dword [edi + 4], 0xffffffff
cmp byte [esp + 0x13], 0
jne 0x42067d
test esi, esi
jle 0x420546
mov eax, 0x600
mov ecx, dword [esp + 0x34c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00472897
add esp, 0x340
ret 0x10
cmp esi, 0xffffff96
mov eax, 0x5000000
mov ecx, 0x1000
cmove eax, ecx
jmp 0x42052b
cmp eax, 0xffffffff
je 0x420567
push dword [edi]
call fcn.00423250
add esp, 4
mov esi, dword [edi]
mov ebp, dword [esp + 0x354]
mov dword [edi + 4], 0xffffffff
cmp ebp, dword [esi + 4]
jl 0x420583
mov eax, 0x10000
jmp 0x42052b
cmp dword [esi + 0x10], ebp
jle 0x4205c7
mov ecx, esi
test ecx, ecx
je 0x4205c4
mov eax, dword [ecx + 0x24]
push 0
push 0
push 0
push 0
push 0
mov dword [ecx + 0x14], eax
lea eax, [ecx + 0x78]
push 0
push eax
lea eax, [ecx + 0x28]
mov dword [ecx + 0x10], 0
push eax
push ecx
call fcn.00423be0
add esp, 0x24
mov ecx, esi
neg eax
sbb eax, eax
inc eax
mov dword [ecx + 0x18], eax
mov esi, dword [edi]
cmp dword [esi + 0x10], ebp
jge 0x420627
nop dword [eax]
mov eax, esi
test esi, esi
je 0x420620
cmp dword [esi + 0x18], 0
je 0x420620
mov edx, dword [esi + 0x10]
inc edx
cmp edx, dword [esi + 4]
je 0x420620
mov ecx, dword [esi + 0x50]
mov eax, dword [esi + 0x48]
add ecx, 0x2e
add ecx, dword [esi + 0x4c]
push 0
push 0
push 0
push 0
add eax, ecx
mov dword [esi + 0x10], edx
add dword [esi + 0x14], eax
lea eax, [esi + 0x78]
push 0
push 0
push eax
lea eax, [esi + 0x28]
push eax
push esi
call fcn.00423be0
add esp, 0x24
neg eax
sbb eax, eax
inc eax
mov dword [esi + 0x18], eax
mov eax, dword [edi]
mov esi, eax
cmp dword [eax + 0x10], ebp
jl 0x4205d0
lea eax, [esp + 0x18]
mov ecx, edi
push eax
push ebp
call fcn.0041fa30
mov eax, dword [esp + 0x120]
shr eax, 4
test al, 1
je 0x420684
cmp dword [esp + 0x360], 1
je 0x42067d
mov al, byte [ebx]
cmp al, 0x2f
je 0x420664
cmp al, 0x5c
je 0x420664
test al, al
je 0x420660
cmp byte [ebx + 1], 0x3a
je 0x420664
xor dl, dl
jmp 0x420666
mov dl, 1
xor ecx, ecx
lea eax, [edi + 0x140]
test dl, dl
push ebx
cmove ecx, eax
push ecx
call fcn.0041f8a0
add esp, 8
xor eax, eax
jmp 0x42052b
cmp dword [esp + 0x360], 1
mov byte [esp + 0x248], 0
je 0x42078b
mov al, byte [ebx]
mov esi, ebx
mov ecx, ebx
test al, al
je 0x4206b7
cmp al, 0x2f
je 0x4206ac
cmp al, 0x5c
jne 0x4206af
lea esi, [ecx + 1]
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4206a4
push 0x104
lea eax, [esp + 0x148]
push ebx
push eax
call fcn.00490650
add esp, 0xc
cmp esi, ebx
jne 0x4206db
mov byte [esp + 0x144], 0
jmp 0x42070f
mov eax, esi
sub eax, ebx
cmp eax, 0x104
jae 0x420873
mov byte [esp + eax + 0x144], 0
mov al, byte [esp + 0x144]
cmp al, 0x2f
je 0x420736
cmp al, 0x5c
je 0x420736
test al, al
je 0x42070f
cmp byte [esp + 0x145], 0x3a
je 0x420736
push esi
lea eax, [esp + 0x148]
push eax
lea ebx, [edi + 0x140]
push ebx
lea eax, [esp + 0x254]
push str._s_s_s
push eax
call fcn.004242b0
add esp, 0x14
jmp 0x420756
push esi
lea eax, [esp + 0x148]
push eax
lea eax, [esp + 0x250]
push str._s_s
push eax
call fcn.004242b0
add esp, 0x10
xor ebx, ebx
lea eax, [esp + 0x144]
push eax
push ebx
call fcn.0041f8a0
add esp, 8
lea eax, [esp + 0x248]
push 0
push dword [esp + 0x124]
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x42079a
mov eax, 0x200
jmp 0x42052b
push dword [edi + 0x138]
push dword [edi]
call fcn.00423320
add esp, 8
cmp dword [edi + 0x13c], 0
jne 0x4207c6
push 0x4000
call fcn.00472e34
add esp, 4
mov dword [edi + 0x13c], eax
xor ebp, ebp
nop dword [eax + eax]
lea eax, [esp + 0x13]
push eax
push 0x4000
push dword [edi + 0x13c]
push dword [edi]
call fcn.00423710
mov esi, eax
add esp, 0x10
cmp esi, 0xffffff96
je 0x420829
test esi, esi
js 0x42081b
jle 0x420810
push 0
lea eax, [esp + 0x18]
push eax
push esi
push dword [edi + 0x13c]
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x420822
cmp byte [esp + 0x13], 0
jne 0x42082e
test esi, esi
jne 0x4207d0
mov ebp, 0x5000000
jmp 0x42082e
mov ebp, 0x400
jmp 0x42082e
mov ebp, 0x1000
push dword [edi]
call fcn.00423250
add esp, 4
test ebp, ebp
jne 0x42085b
lea eax, [esp + 0x134]
push eax
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x134]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [esp + 0x360], 1
je 0x42086c
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebp
jmp 0x42052b
call fcn.00472f5e
int3