Function at 0x409560
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x432b88
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x4447d0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0xb8], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push 0x436024
push eax
mov dword [ebp - 4], 0
mov byte [ebp - 0xa5], 1
xor bl, bl
call fcn.00402040
push 0x436020
push eax
lea eax, [ebp - 0x8c]
push eax
mov byte [ebp - 4], 1
call fcn.00401ef0
add esp, 0x18
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.00401190
xor al, al
lea ecx, [ebp - 0x8c]
mov byte [ebp - 0xa6], al
call fcn.00401d50
mov edx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x28]
mov ecx, dword [ebp - 0xb8]
mov esi, eax
mov al, byte [ebp - 0xa6]
sub edx, esi
add ecx, edi
mov dword [ebp - 0xb0], esi
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb4], ecx
cmp edi, edx
jge 0x4096fe
cmp byte [ebp - 0xa5], 0
jne 0x409640
mov byte [ebp - 0xa5], 0
test al, al
je 0x409647
mov byte [ebp - 0xa5], 1
push 0
lea ecx, [ebp - 0x8c]
call fcn.004067a0
mov edx, dword [ebp - 0xb4]
movsx ecx, byte [eax]
movzx eax, byte [edx]
cmp eax, ecx
jne 0x4096c7
xor esi, esi
mov bl, 1
cmp dword [ebp - 0xb0], esi
jle 0x4096a1
mov edi, edx
push esi
lea ecx, [ebp - 0x8c]
call fcn.004067a0
movsx ecx, byte [eax]
movzx eax, byte [esi + edi]
xor edx, edx
movzx ebx, bl
cmp eax, ecx
cmovne ebx, edx
inc esi
cmp esi, dword [ebp - 0xb0]
jl 0x409672
mov edi, dword [ebp + 0x28]
mov edx, dword [ebp - 0xb4]
mov al, byte [ebp - 0xa6]
mov cl, byte [ebp - 0xa5]
test al, al
jne 0x4096bd
test cl, cl
jne 0x4096bd
mov byte [ebp - 0xa6], al
jmp 0x4096d3
mov al, 1
mov byte [ebp - 0xa6], al
jmp 0x4096d3
mov al, byte [ebp - 0xa6]
mov cl, byte [ebp - 0xa5]
inc edi
inc edx
mov dword [ebp + 0x28], edi
mov dword [ebp - 0xb4], edx
mov byte [ebp - 0xa5], 0
test al, al
je 0x4096f0
mov byte [ebp - 0xa5], 1
mov edx, dword [ebp - 0xac]
test bl, bl
je 0x409624
push str.LmjwnMpRWBdPjtqcPCv
lea ecx, [ebp - 0x40]
call fcn.00401120
mov byte [ebp - 4], 4
mov dword [ebp - 0xac], 0
test bl, bl
je 0x40972c
mov eax, dword [ebp - 0xb0]
dec eax
add eax, edi
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0x40]
xor bl, bl
mov byte [ebp - 0xa6], 1
call fcn.00401d50
cmp eax, 0xc6
jbe 0x409751
push str.mwhfBDLQAkkhhOJIcM
lea ecx, [ebp - 0x40]
call fcn.004011b0
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x28]
push 0x436050
push eax
call fcn.00402040
push 0x436020
push eax
lea eax, [ebp - 0xa4]
push eax
mov byte [ebp - 4], 5
call fcn.00401ef0
add esp, 0x18
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call fcn.00401190
push str.qPxHdch_hwCriEebmf
lea ecx, [ebp - 0x74]
call fcn.00401120
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 8
call fcn.00401d50
mov ecx, dword [ebp + 0x2c]
mov esi, dword [ebp - 0xb8]
sub ecx, eax
add esi, edi
mov dword [ebp - 0xb4], eax
mov dword [ebp + 0x2c], ecx
mov dword [ebp - 0xb0], esi
cmp edi, ecx
jge 0x409889
push 0
lea ecx, [ebp - 0xa4]
call fcn.004067a0
movsx ecx, byte [eax]
movzx eax, byte [esi]
cmp eax, ecx
jne 0x40983d
cmp byte [ebp - 0xa5], 0
mov bl, 1
setne byte [ebp - 0xa5]
xor esi, esi
cmp dword [ebp - 0xb4], esi
jle 0x409829
mov edi, dword [ebp - 0xb0]
nop
push esi
lea ecx, [ebp - 0xa4]
call fcn.004067a0
movsx ecx, byte [eax]
movzx eax, byte [edi + esi]
xor edx, edx
movzx ebx, bl
cmp eax, ecx
cmovne ebx, edx
inc esi
cmp esi, dword [ebp - 0xb4]
jl 0x409800
mov edi, dword [ebp + 0x28]
cmp byte [ebp - 0xa6], 0
mov esi, dword [ebp - 0xb0]
setne byte [ebp - 0xa6]
lea ecx, [ebp - 0x40]
call fcn.00401d50
cmp eax, 0x8d
jbe 0x409859
push str.vTduhpdAIuv_OioTRvaf
lea ecx, [ebp - 0x40]
call fcn.004011b0
inc edi
inc esi
lea ecx, [ebp - 0x74]
mov dword [ebp + 0x28], edi
mov dword [ebp - 0xb0], esi
call fcn.00401d50
cmp eax, 0x55
jbe 0x40987e
push str._ZI_ZAfWadFJj_Q_elnQhO
lea ecx, [ebp - 0x74]
call fcn.004011b0
mov ecx, dword [ebp + 0x2c]
test bl, bl
je 0x4097c0
xor esi, esi
test bl, bl
je 0x409892
lea esi, [edi - 1]
push 0x20
push 0
push 0xa
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb0], esp
push 0x43456c
mov byte [ebp - 0xa5], 1
call fcn.00401120
sub esp, 0x18
mov ecx, esp
push str.D_
mov byte [ebp - 4], 9
call fcn.00401120
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 8
call fcn.00410300
add esp, 0x34
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00401c70
lea ecx, [ebp - 0x28]
call fcn.00401190
mov edi, dword [ebp - 0xb8]
sub esi, dword [ebp - 0xac]
add edi, dword [ebp - 0xac]
lea ecx, [ebp - 0x5c]
xor bl, bl
mov dword [ebp - 0xac], esi
call fcn.00401160
push 0x20
push 0
push 0xa
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xb8], esp
push 0x43456c
mov byte [ebp - 4], 0xb
call fcn.00401120
sub esp, 0x18
mov ecx, esp
push str.K_
mov byte [ebp - 4], 0xc
call fcn.00401120
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xb
call fcn.00410300
add esp, 0x34
mov ecx, eax
mov byte [ebp - 4], 0xd
call fcn.00401c70
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.00401190
cmp byte [ebp + 0x30], bl
je 0x409a04
mov ebx, 0x42
mov eax, esi
lea esp, [esp]
xor esi, esi
test eax, eax
jle 0x4099c9
lea ecx, [ebp - 0x40]
call fcn.00401d50
cmp eax, 0xdd
jbe 0x4099a2
push str._ANZDzXzfsYBkLxujbyQ
lea ecx, [ebp - 0x40]
call fcn.004011b0
movzx eax, byte [esi + edi]
cmp eax, ebx
jne 0x4099b0
lea eax, [ebx - 1]
mov byte [esi + edi], al
cmp byte [ebp - 0xa5], 0
mov eax, dword [ebp - 0xac]
setne byte [ebp - 0xa5]
inc esi
cmp esi, eax
jl 0x409986
inc ebx
cmp ebx, 0x5a
jle 0x409980
xor ecx, ecx
test eax, eax
jle 0x4099f4
mov dl, byte [ebp - 0xa6]
jmp 0x4099e0
test dl, dl
setne dl
cmp byte [ecx + edi], 0x3f
jne 0x4099ef
mov byte [ecx + edi], 0x5a
inc ecx
cmp ecx, eax
jl 0x4099e0
push eax
push edi
lea ecx, [ebp - 0x28]
call fcn.004057a0
mov byte [ebp - 4], 0xe
jmp 0x409a53
xor eax, eax
test esi, esi
jle 0x409a29
mov cl, byte [ebp - 0xa6]
test cl, cl
setne cl
cmp byte [eax + edi], 0x23
jne 0x409a1f
mov byte [eax + edi], 0x47
test bl, bl
setne bl
inc eax
cmp eax, esi
jl 0x409a10
push esi
push edi
lea ecx, [ebp - 0x28]
call fcn.004057a0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xf
call fcn.00401d50
cmp eax, 0x90
jbe 0x409a53
push str.tjqCFmrCCo__CNfEzZHsu
lea ecx, [ebp - 0x40]
call fcn.004011b0
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.00401750
add esp, 8
lea ecx, [ebp - 0x5c]
push eax
call fcn.004063e0
lea ecx, [ebp - 0xd4]
call fcn.00401190
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xb
call fcn.00401190
push 0x20
push 0
push 0xa
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xac], esp
push 0x43456c
call fcn.00401120
sub esp, 0x18
mov ecx, esp
push str.z_B_
mov byte [ebp - 4], 0x10
call fcn.00401120
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 4], 0xb
call fcn.00410300
add esp, 0x34
mov ecx, eax
mov byte [ebp - 4], 0x11
call fcn.00401c70
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xb
call fcn.00401190
push 0
push 0
push 2
push 0
push 0
push 0x40000000
push dword [ebp - 0xbc]
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
jne 0x409b36
lea ecx, [ebp - 0x74]
call fcn.00401d50
cmp eax, 0x7d
jbe 0x409b1f
push str.pBRFpFm_lHfLhgiqWcggxUV
lea ecx, [ebp - 0x74]
call fcn.004011b0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jle 0x409bb8
neg esi
jmp 0x409bb8
push 0
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x5c]
call fcn.00401d50
push eax
lea ecx, [ebp - 0x5c]
call fcn.0040e3f0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push 0x20
push 0
push 0xa
push 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0xbc], esp
push 0x43456c
call fcn.00401120
sub esp, 0x18
mov ecx, esp
push str.K_J_M_
mov byte [ebp - 4], 0x12
call fcn.00401120
lea eax, [ebp - 0xd4]
push eax
mov byte [ebp - 4], 0xb
call fcn.00410300
add esp, 0x34
mov ecx, eax
mov byte [ebp - 4], 0x13
call fcn.00401c70
lea ecx, [ebp - 0xd4]
call fcn.00401190
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 0x28]
lea ecx, [ebp - 0x5c]
call fcn.00401190
lea ecx, [ebp - 0x74]
call fcn.00401190
lea ecx, [ebp - 0xa4]
call fcn.00401190
lea ecx, [ebp - 0x40]
call fcn.00401190
lea ecx, [ebp - 0x8c]
call fcn.00401190
lea ecx, [ebp + 0xc]
call fcn.00401190
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0041bcf4
mov esp, ebp
pop ebp
ret