Function at 0x410a75
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x248
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dl, 2
mov ecx, 0x7833311e
mov dword [esp + 0x2c], ebx
call fcn.0040a69f
mov dword [esp + 0x34], eax
test eax, eax
jne 0x410aa0
xor al, al
jmp 0x410def
xor eax, eax
mov esi, eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x17], al
mov byte [esp + 0x16], 1
mov dword [esp + 0x24], eax
mov ebp, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
call fcn.004318a9
mov edi, 0x4091d4
mov ecx, edi
call fcn.00418988
push eax
push edi
push 2
lea edx, [esp + 0x30]
pop ecx
call fcn.00429b5f
push ecx
lea edx, [esp + 0x60]
mov ecx, ebx
xor edi, edi
call fcn.0041aa99
xor ebx, ebx
test al, al
je 0x410b13
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
push ebx
lea eax, [esp + 0xfc]
push eax
call fcn.00412ad2
lea ecx, [esp + 0x5c]
mov edi, eax
call fcn.0041ab38
test edi, edi
je 0x410b70
lea eax, [esp + 0x20]
push eax
push ebx
push dword [esp + 0x2c]
mov ecx, edi
call fcn.0041286a
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x410b70
cmp dword [esp + 0x20], 0x476
jae 0x410b4b
mov ecx, esi
call fcn.00430e28
mov esi, ebx
mov dword [esp + 0x1c], esi
jmp 0x410b70
mov ebp, esi
call fcn.0040b424
cmp dword [esi], 0
je 0x410c8c
cmp dword [esi], eax
jae 0x410c8c
sub eax, dword [esi]
cmp eax, 0x48190800
jb 0x410c8c
and byte [esp + 0x58], 0xfe
push ecx
mov ecx, ebp
neg ecx
sbb ecx, ecx
lea eax, [ebp + 4]
and ecx, eax
push ecx
push ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], 0x40789c
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
call fcn.00412f41
test al, al
je 0x410c83
mov eax, dword [esp + 0x50]
test byte [esp + 0x58], 1
mov dword [esp + 0x50], ebx
push 0
pop ebx
cmovne ebx, eax
test ebx, ebx
jne 0x410bd6
test ebp, ebp
je 0x410c83
call fcn.0040b424
mov dword [ebp], eax
mov al, 1
mov byte [esp + 0x17], al
jmp 0x410c83
lea eax, [esp + 0x28]
push eax
push 0
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.0041286a
mov dword [esp + 0x18], eax
test eax, eax
je 0x410c58
mov eax, dword [esp + 0x28]
cmp eax, 0x400
jb 0x410c58
lea esi, [eax + 0x76]
mov edx, esi
lea ecx, [esp + 0x1c]
call fcn.00430db7
test al, al
je 0x410c54
push 0x76
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
push 0
push esi
call dword [sym.imp.msvcrt.dll_memset]
add esp, 0xc
call fcn.0040b424
mov dword [esi], eax
push dword [esp + 0x54]
lea ecx, [esi + 4]
call fcn.00418a15
push dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
lea eax, [esi + 0x76]
push ebp
push eax
call dword [sym.imp.msvcrt.dll_memcpy]
mov al, 1
add esp, 0xc
mov byte [esp + 0x17], al
jmp 0x410c6e
mov esi, dword [esp + 0x1c]
test ebp, ebp
je 0x410c6a
call fcn.0040b424
mov dword [ebp], eax
mov al, 1
mov byte [esp + 0x17], al
mov ebp, dword [esp + 0x18]
mov ecx, ebp
call fcn.00430e28
mov ecx, dword [ebx]
call fcn.00430e28
mov ecx, ebx
call fcn.00430e28
lea ecx, [esp + 0x44]
call fcn.00412f11
test esi, esi
je 0x410db9
lea edx, [esi + 0x76]
lea ecx, [esp + 0x38]
call fcn.0040d3f4
test al, al
je 0x410db9
push ecx
lea ecx, [esp + 0x3c]
call fcn.0040d74e
mov ebx, eax
test ebx, ebx
je 0x410dbd
mov al, byte [esp + 0x17]
test al, al
je 0x410d5e
test edi, edi
jne 0x410cdd
xor ecx, ecx
call fcn.00412a74
mov edi, eax
test edi, edi
je 0x410d70
push dword [esp + 0x20]
mov ecx, edi
push esi
push 0x20001
push dword [esp + 0x30]
call fcn.00412600
test al, al
je 0x410d5e
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xfc]
push eax
push 1
mov ecx, edi
call fcn.004128a7
mov ebp, eax
test ebp, ebp
je 0x410d5e
or dword [esp + 0x18], 0xffffffff
push 0x80
push 2
push 1
push 0xc0000000
push dword [esp + 0x3c]
lea ecx, [esp + 0x2c]
call fcn.0040c239
test al, al
je 0x410d4c
push 0
lea eax, [esp + 0x30]
push eax
push ebp
push dword [esp + 0x3c]
push dword [esp + 0x28]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, dword [esp + 0x30]
call fcn.00430e28
lea ecx, [esp + 0x18]
call fcn.0040c226
test edi, edi
je 0x410d70
mov ecx, dword [edi]
call fcn.00430e28
mov ecx, edi
call fcn.00430e28
cmp byte [esp + 0x16], 0
je 0x410dc9
push dword [esp + 0x260]
lea eax, [esp + 0x3c]
push ebx
push eax
mov eax, dword [esp + 0x2c]
add eax, 0xffffff8a
push eax
lea eax, [esi + 0x76]
push eax
call fcn.00410930
test al, al
jne 0x410dc9
mov ecx, dword [esp + 0x38]
call fcn.0040d908
test al, al
je 0x410db5
and dword [esp + 0x38], 0
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
xor bl, bl
jmp 0x410dcd
mov ebx, dword [esp + 0x34]
mov byte [esp + 0x16], 0
xor al, al
jmp 0x410cc0
mov bl, byte [esp + 0x16]
mov ecx, dword [esp + 0x34]
call fcn.004280d6
mov ecx, esi
call fcn.00430e28
mov edx, 0x1ee
lea ecx, [esp + 0x68]
mov byte [ecx], 0
inc ecx
dec edx
jne 0x410de6
mov al, bl
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x248
ret 0xc