Function at 0x40fc1f
Capabilities:
Write file on windows

Disassembly:
push 0x11c
mov eax, 0x43e205
call fcn.0043c0ef
mov dword [ebp - 0xfc], ecx
mov esi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xe8], ecx
test esi, esi
je 0x410153
xor ebx, ebx
cmp dword [eax + 0x10], ebx
je 0x410153
call fcn.0041939b
push 0x24
call fcn.0041ec31
mov edi, eax
pop ecx
mov dword [edi + 0x1c], ebx
mov dword [ebp - 0x11c], edi
mov dword [ebp - 4], ebx
mov eax, 0x100000
mov dword [edi + 0x10], esi
mov dword [edi], 0x419490
mov dword [edi + 4], 0x4194f0
mov dword [edi + 8], 0x419500
mov dword [edi + 0xc], 0x419560
mov dword [edi + 0x18], ebx
mov dword [edi + 0x14], ebx
mov dword [edi + 0x20], eax
mov esi, dword [0x452b00]
mov ecx, esi
push eax
push 0x452b00
call dword [0x43f230]
call esi
mov dword [edi + 0x1c], eax
pop ecx
pop ecx
test eax, eax
jne 0x40fcca
push 0xe
pop ebx
jmp 0x4100f1
push 0x80
call fcn.0041ec31
push 0x80
mov esi, eax
push ebx
push esi
mov dword [ebp - 0xd0], esi
call fcn.00422e80
mov edx, 0x452b00
mov dword [ebp - 0x124], esi
mov dword [ebp - 0x128], edx
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00416c37
push edx
push edx
mov edx, edi
call fcn.00418cb1
add esp, 0x18
mov dword [ebp - 0xd4], eax
test eax, eax
je 0x40fd38
mov edx, 0x452b00
mov ecx, esi
call fcn.00416c72
mov ecx, dword [ebp - 0xd4]
call fcn.0040f65d
mov ebx, eax
jmp 0x4100e5
cmp byte [ebp + 0x14], 0
jne 0x4100e5
or dword [ebp - 0xf0], 0xffffffff
mov eax, ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xec], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xcc], eax
cmp dword [esi + 0x40], ebx
jbe 0x4100a5
mov ecx, eax
mov edx, 0x80
and ecx, 7
sar edx, cl
mov ecx, eax
mov eax, dword [esi + 0x48]
shr ecx, 3
test byte [ecx + eax], dl
jne 0x41008f
push dword [ebp - 0xcc]
mov edx, esi
lea ecx, [ebp - 0x28]
call fcn.0040f7fe
pop ecx
mov eax, dword [ebp - 0xe8]
mov byte [ebp - 4], 2
mov eax, dword [eax + 0x24]
mov dword [ebp - 0xc8], eax
test eax, eax
je 0x40fe09
mov edx, dword [esi + 0x44]
mov esi, dword [ebp - 0xcc]
mov ecx, dword [edx + esi*8 + 8]
sub ecx, dword [edx + esi*8]
mov eax, dword [edx + esi*8 + 0xc]
sbb eax, dword [edx + esi*8 + 4]
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0xc8]
mov dword [ebp - 0x110], ecx
mov eax, dword [eax]
mov esi, dword [eax + 8]
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x28]
mov ecx, esi
push eax
call dword [0x43f230]
mov ecx, dword [ebp - 0xc8]
call esi
test al, al
je 0x41007d
mov esi, dword [ebp - 0xd0]
mov eax, 0x452b00
mov dword [ebp - 0xd4], ebx
push eax
push eax
lea eax, [ebp - 0xc8]
mov dword [ebp - 0xc8], ebx
push eax
lea eax, [ebp - 0xd4]
mov edx, edi
push eax
lea eax, [ebp - 0xec]
mov ecx, esi
push eax
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xf0]
push eax
push dword [ebp - 0xcc]
call fcn.0041903e
add esp, 0x20
test eax, eax
jne 0x410140
mov dword [ebp - 0xc4], ebx
push ecx
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x90]
call fcn.0040498f
mov byte [ebp - 4], 4
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x40fe82
mov eax, dword [eax]
lea esi, [eax + ecx*2]
mov ecx, eax
mov edx, esi
call fcn.00406743
sub esi, eax
mov byte [ebp - 0xf4], bl
push dword [ebp - 0xf4]
sar esi, 1
lea ecx, [ebp - 0x60]
push esi
push eax
call fcn.00406dc6
mov edx, dword [ebp - 0xf8]
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 5
call fcn.0040625d
add esp, 0x10
mov esi, eax
cmp dword [esi + 0x14], 8
jb 0x40fecb
mov esi, dword [esi]
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x48]
call fcn.004169f5
mov byte [ebp - 4], 7
xor ecx, ecx
mov eax, dword [ebp - 0x48]
mov word [eax], cx
mov eax, esi
mov ecx, ebx
cmp word [esi], bx
je 0x40fef8
lea eax, [eax + 2]
inc ecx
cmp word [eax], bx
jne 0x40feef
push ecx
push esi
lea ecx, [ebp - 0x48]
call fcn.00416acb
lea ecx, [ebp - 0x78]
call fcn.0040794e
lea ecx, [ebp - 0x60]
call fcn.0040794e
lea ecx, [ebp - 0x90]
call fcn.0040794e
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x44]
lea eax, [ecx + eax*2]
mov edx, eax
mov dword [ebp - 0xc4], eax
call fcn.0041054a
mov edx, eax
mov eax, dword [ebp - 0x48]
mov ecx, edx
mov dword [ebp - 0xe4], eax
sub ecx, eax
mov dword [ebp - 0xe0], edx
sar ecx, 1
cmp ecx, 1
jbe 0x40ff71
lea esi, [edx - 2]
mov cx, word [esi]
call fcn.004166fb
test al, al
je 0x40ff71
push 0x3a
pop eax
cmp ax, word [edx - 4]
je 0x40ff71
mov dword [ebp - 0xe0], esi
mov esi, dword [ebp - 0xc4]
mov edx, esi
mov ecx, dword [ebp - 0x48]
call fcn.0041054a
lea ecx, [ebp - 0xe4]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], esi
call fcn.0041021f
test eax, eax
jne 0x410133
or dword [ebp - 0xd8], 0xffffffff
lea edx, [ebp - 0x118]
lea ecx, [ebp - 0xc0]
call fcn.00410280
mov esi, eax
lea edx, [ebp - 0xe4]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0xa8]
call fcn.00410280
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xe
push ecx
push ecx
mov edx, esi
mov ecx, eax
call fcn.0041d5f0
pop ecx
pop ecx
mov esi, eax
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0xc4], esi
call fcn.0040794e
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 0xc
call fcn.0040794e
test esi, esi
jne 0x41011a
lea eax, [ebp - 0xd8]
push eax
push dword [ebp - 0xfc]
push ecx
lea ecx, [ebp - 0x108]
call fcn.004102fe
cmp dword [ebp - 0xc8], esi
je 0x410066
push ebx
lea eax, [ebp - 0x100]
mov dword [ebp - 0x100], ebx
push eax
push dword [ebp - 0xc8]
mov eax, dword [ebp - 0xdc]
add eax, dword [ebp - 0xd4]
push eax
push dword [ebp - 0xd8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x4100ff
mov ecx, dword [ebp - 0x104]
test ecx, ecx
je 0x410075
call fcn.00406f67
lea ecx, [ebp - 0x48]
call fcn.0040d77a
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.0040794e
mov esi, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
inc eax
mov dword [ebp - 0xcc], eax
cmp eax, dword [esi + 0x40]
jb 0x40fd6c
push dword [ebp - 0xdc]
mov esi, dword [0x452b04]
mov ebx, 0x452b00
push ebx
mov ecx, esi
call dword [0x43f230]
call esi
mov esi, dword [0x452b04]
pop ecx
pop ecx
push dword [edi + 0x1c]
mov ecx, esi
push ebx
call dword [0x43f230]
call esi
mov ebx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0xd0]
pop ecx
pop ecx
mov edx, 0x452b00
mov ecx, esi
call fcn.00416c72
push 0x24
push edi
call fcn.0041ec23
pop ecx
pop ecx
mov eax, ebx
jmp 0x410158
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x104]
mov dword [ebp - 0xc4], eax
test ecx, ecx
je 0x41011a
call fcn.00406f67
lea ecx, [ebp - 0x48]
call fcn.0040d77a
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.0040794e
jmp 0x4100a5
or eax, 0x20000000
mov dword [ebp - 0xc4], eax
jmp 0x41011a
mov ecx, eax
call fcn.0040f65d
lea ecx, [ebp - 0x28]
mov ebx, eax
call fcn.0040794e
jmp 0x4100e5
mov eax, 0xa0
call fcn.0043c09e
ret 0x10