Function at 0x426030
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x65c
mov eax, dword [0x473564]
xor eax, esp
mov dword [esp + 0x654], eax
push ebx
mov ebx, dword [esp + 0x668]
push ebp
mov ebp, dword [esp + 0x668]
push esi
push edi
mov edi, dword [esp + 0x67c]
cmp edi, 3
mov esi, ecx
mov dword [esp + 0x18], esi
je 0x426084
cmp edi, 2
je 0x426147
cmp edi, 1
je 0x426147
mov eax, 0x10000
jmp 0x426458
mov eax, dword [ebp + 4]
cmp ebx, eax
je 0x4260e9
cmp eax, 0xffffffff
je 0x426098
mov edi, dword [ebp]
call fcn.00425800
mov eax, dword [ebp]
mov dword [ebp + 4], 0xffffffff
cmp ebx, dword [eax + 4]
jge 0x42607a
cmp ebx, dword [eax + 0x10]
jge 0x4260b7
mov esi, eax
call fcn.00425170
mov esi, dword [esp + 0x18]
mov eax, dword [ebp]
cmp dword [eax + 0x10], ebx
jge 0x4260d4
nop
mov esi, dword [ebp]
call fcn.004251b0
mov ecx, dword [ebp]
cmp dword [ecx + 0x10], ebx
jl 0x4260c0
mov esi, dword [esp + 0x18]
mov edx, dword [ebp + 0x23c]
mov eax, dword [ebp]
push edx
call fcn.004253f0
add esp, 4
mov dword [ebp + 4], ebx
mov ecx, dword [esp + 0x678]
lea eax, [esp + 0x17]
push eax
mov eax, dword [ebp]
push esi
call fcn.00425570
mov esi, eax
add esp, 8
test esi, esi
jg 0x426116
mov edi, dword [ebp]
call fcn.00425800
mov dword [ebp + 4], 0xffffffff
cmp byte [esp + 0x17], 0
jne 0x426249
test esi, esi
jle 0x42612f
mov eax, 0x600
jmp 0x426458
mov eax, esi
sub eax, 0xffffff96
neg eax
sbb eax, eax
and eax, 0x4fff000
add eax, 0x1000
jmp 0x426458
cmp dword [ebp + 4], 0xffffffff
je 0x42615c
mov edi, dword [ebp]
call fcn.00425800
mov edi, dword [esp + 0x67c]
mov eax, dword [ebp]
mov dword [ebp + 4], 0xffffffff
cmp ebx, dword [eax + 4]
jge 0x42607a
cmp ebx, dword [eax + 0x10]
jge 0x426186
mov esi, eax
call fcn.00425170
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x67c]
mov ecx, dword [ebp]
cmp dword [ecx + 0x10], ebx
jge 0x4261ed
mov edi, edi
mov esi, dword [ebp]
test esi, esi
je 0x4261da
cmp dword [esi + 0x18], 0
je 0x4261da
mov eax, dword [esi + 0x10]
add eax, 1
cmp eax, dword [esi + 4]
je 0x4261da
mov edx, dword [esi + 0x50]
add edx, dword [esi + 0x4c]
mov ecx, dword [esi + 0x48]
lea edx, [edx + ecx + 0x2e]
add dword [esi + 0x14], edx
push 0
mov dword [esi + 0x10], eax
lea eax, [esi + 0x78]
push 0
push eax
lea edx, [esi + 0x28]
mov ecx, esi
call fcn.00424e60
add esp, 0xc
neg eax
sbb eax, eax
add eax, 1
mov dword [esi + 0x18], eax
mov ecx, dword [ebp]
cmp dword [ecx + 0x10], ebx
jl 0x426190
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x67c]
lea edx, [esp + 0x20]
push edx
push ebx
push ebp
call fcn.00425930
mov eax, dword [esp + 0x22c]
shr eax, 4
test al, 1
je 0x426250
cmp edi, 1
je 0x426249
movzx eax, word [esi]
cmp ax, 0x2f
je 0x426227
cmp ax, 0x5c
je 0x426227
test ax, ax
je 0x426239
cmp word [esi + 2], 0x3a
jne 0x426239
push esi
push 0
call fcn.00425e90
add esp, 8
xor eax, eax
jmp 0x426458
push esi
add ebp, 0x244
push ebp
call fcn.00425e90
add esp, 8
xor eax, eax
jmp 0x426458
cmp edi, 1
mov word [esp + 0x458], 0
jne 0x426266
mov ebx, esi
jmp 0x426308
movzx eax, word [esi]
xor ebx, ebx
cmp ax, bx
mov edi, esi
mov ecx, esi
je 0x426292
movzx eax, ax
cmp ax, 0x2f
je 0x426283
cmp ax, 0x5c
jne 0x426286
lea edi, [ecx + 2]
movzx eax, word [ecx + 2]
add ecx, 2
cmp ax, bx
jne 0x426277
push 0x104
lea ecx, [esp + 0x254]
push esi
push ecx
call fcn.0043a53d
add esp, 0xc
cmp edi, esi
jne 0x426317
mov word [esp + 0x250], bx
push edi
lea edx, [esp + 0x254]
push edx
lea esi, [ebp + 0x244]
push esi
push str._s_s_s
lea edx, [esp + 0x468]
call fcn.00422110
lea eax, [esp + 0x260]
push eax
push esi
call fcn.00425e90
add esp, 0x18
mov ecx, dword [esp + 0x22c]
push ebx
push ecx
push 2
push ebx
push ebx
push 0x40000000
lea edx, [esp + 0x470]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x426384
mov eax, 0x200
jmp 0x426458
mov edx, edi
sub edx, esi
sar edx, 1
mov word [esp + edx*2 + 0x250], bx
mov ax, word [esp + 0x250]
cmp ax, 0x2f
je 0x426351
cmp ax, 0x5c
je 0x426351
cmp ax, bx
je 0x4262b4
cmp word [esp + 0x252], 0x3a
jne 0x4262b4
push edi
lea eax, [esp + 0x254]
push eax
push str._s_s
lea edx, [esp + 0x464]
call fcn.00422110
add esp, 0xc
lea ecx, [esp + 0x250]
push ecx
push ebx
call fcn.00425e90
add esp, 8
jmp 0x4262e6
mov eax, dword [ebp + 0x23c]
push eax
mov eax, dword [ebp]
call fcn.004253f0
add esp, 4
cmp dword [ebp + 0x240], 0
jne 0x4263b2
push 0x4000
call fcn.004387fc
add esp, 4
mov dword [ebp + 0x240], eax
mov edi, dword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [esp + 0x18], 0
mov edx, dword [ebp + 0x240]
mov eax, dword [ebp]
lea ecx, [esp + 0x17]
push ecx
push edx
mov ecx, 0x4000
call fcn.00425570
mov esi, eax
add esp, 8
cmp esi, 0xffffff96
je 0x426473
test esi, esi
jl 0x42640e
jle 0x426403
mov ecx, dword [ebp + 0x240]
push 0
lea eax, [esp + 0x20]
push eax
push esi
push ecx
push ebx
call edi
test eax, eax
je 0x42647d
cmp byte [esp + 0x17], 0
jne 0x426416
test esi, esi
jne 0x4263c0
mov dword [esp + 0x18], 0x5000000
mov edi, dword [ebp]
call fcn.00425800
mov esi, dword [esp + 0x18]
test esi, esi
jne 0x426445
lea edx, [esp + 0x240]
push edx
lea eax, [esp + 0x234]
push eax
lea ecx, [esp + 0x240]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [esp + 0x67c], 1
je 0x426456
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov ecx, dword [esp + 0x664]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00438866
add esp, 0x65c
ret 0x10
mov dword [esp + 0x18], 0x1000
jmp 0x426416
mov dword [esp + 0x18], 0x400
jmp 0x426416