Function at 0x40c1eb
Capabilities:
Write file on windows

Disassembly:
push 0x38
mov eax, 0x46ef35
call fcn.0045bcff
mov edi, ecx
mov esi, edx
mov eax, esi
call fcn.0040c088
test al, al
jne 0x40c213
mov eax, 0x80040007
call fcn.0045bdd7
ret 0xc
mov bl, byte [esi + 0x50]
and bl, 1
mov byte [ebp - 0xd], bl
call fcn.0040ae2e
cmp dword [ebp + 8], 0xffffffff
jne 0x40c22b
push 6
jmp 0x40c23a
cmp dword [ebp + 0xc], 0
jne 0x40c241
test bl, bl
jne 0x40c241
push 0x80070057
mov eax, esi
call fcn.0040b993
mov eax, esi
call fcn.0040b139
test al, al
je 0x40c251
mov eax, dword [esi + 0x10]
jmp 0x40c20b
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x40c260
mov eax, dword [ecx]
call dword [eax]
test al, al
je 0x40c24c
mov ebx, 0x497be8
push ebx
lea ecx, [ebp - 0x14]
call fcn.00401e55
and dword [ebp - 4], 0
cmp byte [ebp - 0xd], 0
jne 0x40c364
lea eax, [ebp - 0x1c]
push 0x7564
push eax
call fcn.00450270
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 0xc]
mov eax, dword [eax]
lea ecx, [edi + ecx - 1]
push ecx
push edi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.00404c68
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x1c]
add esp, 0x18
add ecx, 0xfffffff0
call fcn.004025c2
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x1c]
mov edx, dword [edx + 0x20]
push 0
push 0x4000000
push eax
push edi
push ecx
push edx
call fcn.0044d600
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x40c367
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov ecx, eax
call fcn.0040b8a6
push dword [esi + 0xc]
lea edi, [ebp + 0xc]
call fcn.0040b540
pop ecx
push ebx
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 2
call fcn.00401e55
mov byte [ebp - 4], 3
push dword [ebp - 0x14]
lea eax, [ebp + 0x10]
push dword [ebp + 0xc]
push str.desc_s___s_
push eax
call fcn.00404c68
mov eax, dword [esi + 0x10]
mov edi, dword [ebp + 0x10]
add esp, 0x10
push str._save
push eax
push edi
call fcn.00435e30
mov ecx, eax
call fcn.004360e0
mov esi, dword [esi + 0x10]
lea ecx, [edi - 0x10]
call fcn.004025c2
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.004025c2
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.004025c2
mov eax, esi
jmp 0x40c20b
mov edi, dword [esi + 0x24]
push 0x400
lea ecx, [ebp - 0x44]
call fcn.0040a8c4
xor eax, eax
mov byte [ebp - 4], 4
cmp dword [ebp - 0x28], eax
je 0x40c384
cmp dword [ebp - 0x24], eax
jne 0x40c39d
lea edi, [ebp - 0x44]
call fcn.0040191f
mov esi, dword [esi + 0x10]
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0
call fcn.0040a930
jmp 0x40c352
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov ebx, dword [ebp + 0x10]
test ebx, ebx
je 0x40c3b4
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
je 0x40c420
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x28]
push edi
call fcn.0044d790
add esp, 0x10
test eax, eax
je 0x40c412
cmp dword [ebp - 0x18], 0
je 0x40c420
test ebx, ebx
je 0x40c3df
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
je 0x40c420
push 0
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x28]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40c412
test ebx, ebx
je 0x40c3a3
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
test al, al
je 0x40c420
push dword [ebp - 0x18]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
jmp 0x40c3a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push esi
mov ecx, eax
call fcn.0040b8a6
cmp byte [ebp - 0xd], 0
jne 0x40c38c
push edi
call fcn.0044d390
pop ecx
jmp 0x40c38c