Function at 0x40c416
Capabilities:
Write file on windows

Disassembly:
cmp dword [ebp - 0x68], 0xfde9
mov al, byte [edx]
mov byte [ebp - 0x31], al
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x2c], 1
mov ecx, dword [eax*4 + 0x4240b0]
mov dword [ebp - 0x4c], ecx
jne 0x40c2fd
add ecx, 0x2e
mov eax, ebx
add ecx, edi
cmp byte [ecx], bl
je 0x40c1db
inc eax
inc ecx
cmp eax, 5
jl 0x40c1d0
mov edi, dword [ebp - 0x54]
sub edi, edx
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x40c2a2
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x44]
add eax, 0x2e
add eax, ecx
mov dword [ebp - 0x4c], eax
movzx eax, byte [eax]
movsx eax, byte [eax + 0x423758]
inc eax
mov dword [ebp - 0x38], eax
sub eax, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
cmp eax, edi
jg 0x40c433
mov ecx, dword [ebp - 0x2c]
mov edi, ebx
mov esi, dword [ebp - 0x4c]
mov al, byte [esi]
mov byte [ebp + edi - 0x18], al
inc edi
inc esi
cmp edi, ecx
jl 0x40c21d
mov edi, dword [ebp - 0x48]
test edi, edi
jle 0x40c243
push edi
lea eax, [ebp - 0x18]
add eax, ecx
push edx
push eax
call fcn.0040d3a8
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov edi, dword [ebp - 0x44]
mov edx, ebx
mov esi, dword [ebp - 0x50]
mov eax, dword [esi*4 + 0x4240b0]
add eax, edi
mov byte [eax + edx + 0x2e], bl
inc edx
cmp edx, ecx
jl 0x40c24b
push dword [ebp - 0x3c]
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x6c], eax
lea ecx, [ebp - 0x78]
xor eax, eax
mov dword [ebp - 0x78], ebx
cmp dword [ebp - 0x38], 4
push ecx
sete al
ror byte [ecx + 0x50408c5d], 0x89
inc ebp
aam 0x8d
inc ebp
xchg esp, eax
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.00418559
add esp, 0x14
cmp eax, 0xffffffff
je 0x40c4ac
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x48]
jmp 0x40c2f7
movzx eax, byte [edx]
movsx ecx, byte [eax + 0x423758]
inc ecx
mov dword [ebp - 0x4c], ecx
cmp ecx, edi
jg 0x40c462
push dword [ebp - 0x3c]
xor eax, eax
mov dword [ebp - 0x80], ebx
cmp ecx, 4
mov dword [ebp - 0x7c], ebx
lea ecx, [ebp - 0x80]
mov dword [ebp - 0x38], edx
sete al
inc eax
push ecx
push eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004185ad
add esp, 0x14
cmp eax, 0xffffffff
je 0x40c4ac
mov eax, dword [ebp - 0x30]
add eax, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x44]
dec eax
jmp 0x40c382
mov ah, byte [edi + ecx + 0x2d]
test ah, 4
je 0x40c324
mov al, byte [edi + ecx + 0x2e]
mov eax, dword [ebp - 0x3c]
movzx ecx, byte [edx]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
cmp word [eax + ecx*2], bx
jge 0x40c364
lea eax, [edx + 1]
mov dword [ebp - 0x38], eax
cmp eax, dword [ebp - 0x54]
jae 0x40c483
push dword [ebp - 0x3c]
lea eax, [ebp - 0x40]
push 2
push edx
push eax
call fcn.00416bea
add esp, 0x10
cmp eax, 0xffffffff
je 0x40c4ac
mov eax, dword [ebp - 0x38]
jmp 0x40c382
push dword [ebp - 0x3c]
push 1
push edx
mov edx, dword [ebp - 0x30]
mov ecx, edx
sub ecx, dword [ebp - 0x60]
mov eax, dword [esi + 8]
add eax, ecx
mov dword [ebp - 0x48], eax
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x5c], eax
jb 0x40c4ac
cmp byte [ebp - 0x31], 0xa
jne 0x40c428
push 0xd
pop eax
push ebx
mov word [ebp - 0x58], ax
lea eax, [ebp - 0x5c]
inc ebp
movsb byte es:[edi], byte [esi]
push eax
push 1
lea eax, [ebp - 0x58]
push eax
push dword [ebp - 0x64]
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40c4a4
cmp dword [ebp - 0x5c], 1
jb 0x40c4ac
add byte [eax], al
invalid
inc dword [esi + 8]
inc dword [esi + 4]
mov eax, dword [esi + 4]
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x48], eax
cmp edx, dword [ebp - 0x54]
jb 0x40c1a0
jmp 0x40c4ac
test edi, edi
jle 0x40c45d
mov eax, dword [ebp - 0x30]
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x50]
mov edx, dword [edx*4 + 0x4240b0]
xchg ebp, eax
mov al, 0x40
inc edx
add byte [ebx], al
ror dword [edx - 0x2cfcfcf4], 1
inc ebx
mov byte [edx + esi + 0x2e], cl
mov ecx, dword [ebp - 0x44]
cmp ebx, edi
jl 0x40c43d
mov esi, dword [ebp + 8]
add dword [esi + 4], edi
jmp 0x40c4ac
test edi, edi
jle 0x40c45d
mov esi, dword [ebp - 0x44]
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax*4 + 0x4240b0]
mov al, byte [ebx + edx]
add ecx, esi
mov byte [ecx + ebx + 0x2e], al
inc esp
sbb dword [esi], ebp
inc ebx
cmp ebx, edi
jl 0x40c469
jmp 0x40c45a
mov eax, dword [ebp - 0x4c]
mov cl, byte [edx]
mov byte [edi + eax + 0x2e], cl
mov eax, dword [ebp - 0x50]
mov eax, dword [eax*4 + 0x4240b0]