Function at 0x405340
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43a689
mov eax, dword fs:[0]
push eax
sub esp, 0x118
mov eax, dword [0x44983c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 4], 0
mov byte [ebp - 0x8d], 0
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x94], eax
lea ecx, [ebp + 0xc]
push ecx
push 0x442fdc
lea edx, [ebp - 0xf4]
push edx
call fcn.00407070
add esp, 0xc
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0xc4], eax
mov byte [ebp - 4], 1
push 0x442fd8
mov ecx, dword [ebp - 0xc4]
push ecx
lea edx, [ebp - 0x40]
push edx
call fcn.00407130
add esp, 0xc
mov byte [ebp - 4], 3
lea ecx, [ebp - 0xf4]
call fcn.00401ac0
lea ecx, [ebp - 0x40]
call fcn.00401b20
mov dword [ebp - 0x98], eax
movzx eax, byte [ebp - 0x8d]
test eax, eax
jne 0x40549d
mov ecx, dword [ebp + 0x2c]
sub ecx, dword [ebp - 0x98]
cmp dword [ebp - 0x94], ecx
jge 0x40549d
mov edx, dword [ebp + 0x24]
add edx, dword [ebp - 0x94]
movzx esi, byte [edx]
push 0
lea ecx, [ebp - 0x40]
call fcn.00401b00
movsx eax, byte [eax]
cmp esi, eax
jne 0x405489
mov byte [ebp - 0x8d], 1
mov dword [ebp - 0xac], 0
jmp 0x405449
mov ecx, dword [ebp - 0xac]
add ecx, 1
mov dword [ebp - 0xac], ecx
mov edx, dword [ebp - 0xac]
cmp edx, dword [ebp - 0x98]
jge 0x405489
mov eax, dword [ebp - 0x94]
add eax, dword [ebp - 0xac]
mov ecx, dword [ebp + 0x24]
movzx esi, byte [ecx + eax]
mov edx, dword [ebp - 0xac]
push edx
lea ecx, [ebp - 0x40]
call fcn.00401b00
movsx eax, byte [eax]
cmp esi, eax
je 0x405487
mov byte [ebp - 0x8d], 0
jmp 0x40543a
mov ecx, dword [ebp - 0x94]
add ecx, 1
mov dword [ebp - 0x94], ecx
jmp 0x4053e6
mov dword [ebp - 0xb4], 0
movzx edx, byte [ebp - 0x8d]
test edx, edx
je 0x4054c8
mov eax, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
lea edx, [ecx + eax - 1]
mov dword [ebp - 0xb4], edx
mov byte [ebp - 0x8d], 0
lea eax, [ebp + 0xc]
push eax
push 0x442fe4
lea ecx, [ebp - 0x10c]
push ecx
call fcn.00407070
add esp, 0xc
mov dword [ebp - 0xd8], eax
mov edx, dword [ebp - 0xd8]
mov dword [ebp - 0xd4], edx
mov byte [ebp - 4], 4
push 0x442fe0
mov eax, dword [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x5c]
push ecx
call fcn.00407130
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x10c]
call fcn.00401ac0
lea ecx, [ebp - 0x5c]
call fcn.00401b20
mov dword [ebp - 0x98], eax
movzx edx, byte [ebp - 0x8d]
test edx, edx
jne 0x4055e9
mov eax, dword [ebp + 0x2c]
sub eax, dword [ebp - 0x98]
cmp dword [ebp - 0x94], eax
jge 0x4055e9
mov ecx, dword [ebp + 0x24]
add ecx, dword [ebp - 0x94]
movzx esi, byte [ecx]
push 0
lea ecx, [ebp - 0x5c]
call fcn.00401b00
movsx edx, byte [eax]
cmp esi, edx
jne 0x4055d5
mov byte [ebp - 0x8d], 1
mov dword [ebp - 0xa8], 0
jmp 0x405595
mov eax, dword [ebp - 0xa8]
add eax, 1
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0xa8]
cmp ecx, dword [ebp - 0x98]
jge 0x4055d5
mov edx, dword [ebp - 0x94]
add edx, dword [ebp - 0xa8]
mov eax, dword [ebp + 0x24]
movzx esi, byte [eax + edx]
mov ecx, dword [ebp - 0xa8]
push ecx
lea ecx, [ebp - 0x5c]
call fcn.00401b00
movsx edx, byte [eax]
cmp esi, edx
je 0x4055d3
mov byte [ebp - 0x8d], 0
jmp 0x405586
mov eax, dword [ebp - 0x94]
add eax, 1
mov dword [ebp - 0x94], eax
jmp 0x405532
mov dword [ebp - 0xb8], 0
movzx ecx, byte [ebp - 0x8d]
test ecx, ecx
je 0x40560d
mov edx, dword [ebp - 0x94]
sub edx, 1
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp + 0x24]
add eax, dword [ebp - 0xb4]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0xb8]
sub ecx, dword [ebp - 0xb4]
mov dword [ebp - 0xbc], ecx
lea ecx, [ebp - 0x28]
call fcn.00401a00
mov byte [ebp - 4], 7
movzx edx, byte [ebp + 0x30]
test edx, edx
je 0x40576e
mov dword [ebp - 0xb0], 0x42
jmp 0x405661
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0x5a
jg 0x4056c5
mov dword [ebp - 0xa0], 0
jmp 0x405685
mov ecx, dword [ebp - 0xa0]
add ecx, 1
mov dword [ebp - 0xa0], ecx
mov edx, dword [ebp - 0xa0]
cmp edx, dword [ebp - 0xbc]
jge 0x4056c3
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0xa0]
movzx ecx, byte [eax]
cmp ecx, dword [ebp - 0xb0]
jne 0x4056c1
mov edx, dword [ebp - 0xb0]
sub edx, 1
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0xa0]
mov byte [eax], dl
jmp 0x405676
jmp 0x405652
mov dword [ebp - 0xa4], 0
jmp 0x4056e0
mov ecx, dword [ebp - 0xa4]
add ecx, 1
mov dword [ebp - 0xa4], ecx
mov edx, dword [ebp - 0xa4]
cmp edx, dword [ebp - 0xbc]
jge 0x405713
mov eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0xa4]
movzx ecx, byte [eax]
cmp ecx, 0x3f
jne 0x405711
mov edx, dword [ebp - 0x9c]
add edx, dword [ebp - 0xa4]
mov byte [edx], 0x5a
jmp 0x4056d1
mov eax, dword [ebp - 0xbc]
push eax
mov ecx, dword [ebp - 0x9c]
push ecx
lea ecx, [ebp - 0x74]
call fcn.00406020
mov byte [ebp - 4], 8
lea edx, [ebp - 0x74]
push edx
lea eax, [ebp - 0x124]
push eax
call fcn.004016a0
add esp, 8
mov dword [ebp - 0xdc], eax
mov ecx, dword [ebp - 0xdc]
push ecx
lea ecx, [ebp - 0x28]
call fcn.00406060
lea ecx, [ebp - 0x124]
call fcn.00401ac0
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x74]
call fcn.00401ac0
jmp 0x4057af
mov edx, dword [ebp - 0xb8]
sub edx, dword [ebp - 0xb4]
push edx
mov eax, dword [ebp - 0x9c]
push eax
lea ecx, [ebp - 0x8c]
call fcn.00406020
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x8c]
push ecx
lea ecx, [ebp - 0x28]
call fcn.00406140
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x8c]
call fcn.00401ac0
push 0
push 0
push 2
push 0
push 0
push 0x40000000
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0xffffffff
jne 0x40581c
mov dword [ebp - 0xc8], 0xffffffff
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00401ac0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5c]
call fcn.00401ac0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00401ac0
mov eax, dword [ebp - 0xc8]
jmp 0x405893
push 0
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x28]
call fcn.00401b20
push eax
lea ecx, [ebp - 0x28]
call fcn.004062b0
push eax
mov ecx, dword [ebp - 0xc0]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [ebp - 0xc0]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x28]
call fcn.00401ac0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x5c]
call fcn.00401ac0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.00401ac0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0xc]
call fcn.00401ac0
mov eax, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00422b72
mov esp, ebp
pop ebp
ret