Function at 0x4364e0
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x64c
push ebx
mov ebx, dword [esp + 0x660]
push ebp
push esi
cmp ebx, 3
push edi
mov esi, ecx
je 0x43651c
cmp ebx, 2
je 0x436619
cmp ebx, 1
je 0x436619
pop edi
pop esi
pop ebp
mov eax, 0x10000
pop ebx
add esp, 0x64c
ret 0x10
mov eax, dword [esi + 4]
mov edi, dword [esp + 0x660]
cmp edi, eax
je 0x436594
cmp eax, 0xffffffff
je 0x43653a
mov eax, dword [esi]
push eax
call fcn.00435c10
add esp, 4
mov eax, dword [esi]
mov dword [esi + 4], 0xffffffff
cmp edi, dword [eax + 4]
jl 0x43655a
pop edi
pop esi
pop ebp
mov eax, 0x10000
pop ebx
add esp, 0x64c
ret 0x10
cmp edi, dword [eax + 0x10]
jge 0x436568
push eax
call fcn.004354d0
add esp, 4
mov eax, dword [esi]
cmp dword [eax + 0x10], edi
jge 0x43657f
push eax
call fcn.00435520
mov eax, dword [esi]
add esp, 4
cmp dword [eax + 0x10], edi
jl 0x43656f
mov ecx, dword [esi + 0x23c]
mov edx, dword [esi]
push ecx
push edx
call fcn.004357a0
add esp, 8
mov dword [esi + 4], edi
mov ecx, dword [esp + 0x668]
mov edx, dword [esp + 0x664]
lea eax, [esp + 0x13]
push eax
mov eax, dword [esi]
push ecx
push edx
push eax
call fcn.00435950
mov edi, eax
add esp, 0x10
test edi, edi
jg 0x4365cc
mov ecx, dword [esi]
push ecx
call fcn.00435c10
add esp, 4
mov dword [esi + 4], 0xffffffff
mov al, byte [esp + 0x13]
test al, al
je 0x4365e3
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64c
ret 0x10
test edi, edi
jle 0x4365f9
pop edi
pop esi
pop ebp
mov eax, 0x600
pop ebx
add esp, 0x64c
ret 0x10
mov eax, edi
pop edi
sub eax, 0xffffff96
pop esi
neg eax
sbb eax, eax
pop ebp
and eax, 0x4fff000
pop ebx
add eax, 0x1000
add esp, 0x64c
ret 0x10
mov eax, dword [esi + 4]
or edi, 0xffffffff
cmp eax, edi
je 0x43662e
mov edx, dword [esi]
push edx
call fcn.00435c10
add esp, 4
mov eax, dword [esi]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x660]
cmp edi, dword [eax + 4]
jl 0x436651
pop edi
pop esi
pop ebp
mov eax, 0x10000
pop ebx
add esp, 0x64c
ret 0x10
cmp edi, dword [eax + 0x10]
jge 0x43665f
push eax
call fcn.004354d0
add esp, 4
mov eax, dword [esi]
cmp dword [eax + 0x10], edi
jge 0x436676
push eax
call fcn.00435520
mov eax, dword [esi]
add esp, 4
cmp dword [eax + 0x10], edi
jl 0x436666
lea eax, [esp + 0x224]
mov ecx, esi
push eax
push edi
call fcn.00435e90
test byte [esp + 0x430], 0x10
je 0x4366ff
cmp ebx, 1
jne 0x4366a4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x64c
ret 0x10
mov ecx, dword [esp + 0x664]
mov ax, word [ecx]
cmp ax, 0x2f
je 0x4366c6
cmp ax, 0x5c
je 0x4366c6
test ax, ax
je 0x4366e0
cmp word [ecx + 2], 0x3a
jne 0x4366e0
push ecx
push 0
call fcn.004363f0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
add esi, 0x244
push ecx
push esi
call fcn.004363f0
add esp, 8
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10
cmp ebx, 1
jne 0x436712
mov ebx, dword [esp + 0x664]
xor ebp, ebp
jmp 0x4367aa
mov edi, dword [esp + 0x664]
xor ebp, ebp
mov ebx, edi
mov ecx, edi
mov ax, word [edi]
cmp ax, bp
je 0x436742
cmp ax, 0x2f
je 0x436733
cmp ax, 0x5c
jne 0x436736
lea ebx, [ecx + 2]
mov ax, word [ecx + 2]
add ecx, 2
cmp ax, bp
jne 0x436727
lea ecx, [esp + 0x1c]
push edi
push ecx
call dword [sym.imp.MSVCRT.dll_wcscpy]
add esp, 8
cmp ebx, edi
jne 0x4367c1
mov word [esp + 0x1c], bp
lea eax, [esp + 0x1c]
lea edi, [esi + 0x244]
push ebx
push eax
push edi
lea ecx, [esp + 0x460]
push str._s_s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x30]
push edx
push edi
call fcn.004363f0
add esp, 0x1c
mov eax, dword [esp + 0x430]
push ebp
push eax
push 2
push ebp
push ebp
lea ecx, [esp + 0x468]
push 0x40000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x43681e
pop edi
pop esi
pop ebp
mov eax, 0x200
pop ebx
add esp, 0x64c
ret 0x10
mov edx, ebx
sub edx, edi
sar edx, 1
mov word [esp + edx*2 + 0x1c], bp
mov ax, word [esp + 0x1c]
cmp ax, 0x2f
je 0x4367f2
cmp ax, 0x5c
je 0x4367f2
cmp ax, bp
je 0x43675a
cmp word [esp + 0x1e], 0x3a
jne 0x43675a
lea eax, [esp + 0x1c]
push ebx
push eax
lea ecx, [esp + 0x45c]
push str._s_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
lea edx, [esp + 0x2c]
push edx
push ebp
call fcn.004363f0
add esp, 0x18
jmp 0x436788
mov edx, dword [esi + 0x23c]
mov eax, dword [esi]
push edx
push eax
call fcn.004357a0
mov eax, dword [esi + 0x240]
add esp, 8
cmp eax, ebp
jne 0x43684d
push 0x4000
call sub.MFC42u.DLL_operatornew
add esp, 4
mov dword [esi + 0x240], eax
mov dword [esp + 0x14], ebp
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [esi + 0x240]
mov eax, dword [esi]
lea ecx, [esp + 0x13]
push ecx
push 0x4000
push edx
push eax
call fcn.00435950
mov edi, eax
add esp, 0x10
cmp edi, 0xffffff96
je 0x4368a4
test edi, edi
jl 0x4368b8
jle 0x436896
mov edx, dword [esi + 0x240]
lea ecx, [esp + 0x18]
push 0
push ecx
push edi
push edx
push ebx
call ebp
test eax, eax
je 0x4368ae
mov al, byte [esp + 0x13]
test al, al
jne 0x4368c2
test edi, edi
je 0x4368b8
jmp 0x436857
mov dword [esp + 0x14], 0x1000
jmp 0x4368e1
mov dword [esp + 0x14], 0x400
jmp 0x4368e1
mov dword [esp + 0x14], 0x5000000
jmp 0x4368e1
lea eax, [esp + 0x444]
lea ecx, [esp + 0x434]
push eax
lea edx, [esp + 0x440]
push ecx
push edx
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
cmp dword [esp + 0x66c], 1
je 0x4368f2
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esi]
push eax
call fcn.00435c10
mov eax, dword [esp + 0x18]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64c
ret 0x10