Function at 0x405496
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push esi
push dword [ebp + 8]
call fcn.0040b088
mov esi, eax
push 0x5c
push esi
call fcn.0040ae50
add esp, 0xc
test eax, eax
je 0x4054cf
cmp eax, esi
jbe 0x4054c4
cmp byte [eax - 1], 0x3a
je 0x4054c4
mov byte [eax], 0
jmp 0x4054c8
mov byte [eax + 1], 0
push esi
call fcn.00406bca
pop ecx
push esi
call fcn.00409e82
mov dword [esp], 0x4260fc
push dword [ebp + 8]
call fcn.0040ae32
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x4056c2
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 4], edi
test edi, edi
je 0x4056b8
push ebx
jmp 0x405506
mov edi, dword [ebp - 4]
push dword [edi]
call fcn.00405431
mov esi, eax
pop ecx
cmp esi, 0xffffffff
je 0x405530
push esi
call fcn.004033ca
pop ecx
test eax, eax
je 0x405530
push esi
call fcn.004033f4
pop ecx
cmp eax, 1
jne 0x4056a9
mov ecx, dword [edi]
test ecx, ecx
je 0x4056a9
mov eax, dword [edi + 4]
test eax, eax
je 0x4056a9
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x405548
sub ecx, esi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x405554
sub eax, esi
lea eax, [eax + ecx + 8]
push eax
push 2
call fcn.0040a371
mov esi, dword [edi]
pop ecx
mov ebx, eax
pop ecx
xor eax, eax
jmp 0x405583
cmp cl, 0x5c
jne 0x40557c
mov byte [eax + ebx], cl
inc eax
mov cl, byte [esi]
mov byte [eax + ebx], cl
inc eax
inc esi
mov cl, byte [esi]
test cl, cl
jne 0x405573
mov byte [eax + ebx], 0x3d
mov ecx, dword [edi + 8]
inc eax
test ecx, ecx
je 0x405608
mov eax, ecx
mov edx, ecx
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405599
sub eax, edx
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4055a5
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, 0x426100
rep movsb byte es:[edi], byte [esi]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4055c4
sub eax, esi
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4055d0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
mov eax, ebx
rep movsb byte es:[edi], byte [esi]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4055eb
push dword [ebp - 8]
sub eax, esi
push eax
push 1
push ebx
call fcn.0040acfc
add esp, 0x10
jmp 0x40569f
mov esi, dword [edi + 4]
jmp 0x405643
cmp cl, 0x5c
jne 0x40563e
mov cl, byte [esi + 1]
mov byte [eax + ebx], 0x5c
cmp cl, 0x5c
je 0x405623
cmp cl, 0x3a
jne 0x405632
mov cl, byte [esi + 1]
mov byte [eax + ebx + 1], cl
add eax, 2
add esi, 2
jmp 0x405643
mov cl, byte [esi]
mov byte [eax + ebx + 1], cl
add eax, 2
inc esi
jmp 0x405643
mov byte [eax + ebx], cl
inc eax
inc esi
mov cl, byte [esi]
test cl, cl
jne 0x40560d
mov byte [eax + ebx], cl
mov eax, 0x426104
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405653
sub eax, esi
lea edi, [ebx - 1]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40565f
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.0040737f
pop ecx
mov edi, eax
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x405681
push dword [ebp - 8]
sub eax, esi
push eax
push 1
push edi
call fcn.0040acfc
push edi
call fcn.00409e82
add esp, 0x14
push ebx
call fcn.00409e82
mov edi, dword [ebp - 4]
pop ecx
mov edi, dword [edi + 0xc]
mov dword [ebp - 4], edi
test edi, edi
jne 0x405503
pop ebx
push dword [ebp - 8]
call fcn.0040ab31
pop ecx
pop edi
pop esi
leave
ret