Function at 0x40cd20
Capabilities:
Accept command line arguments
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x778
mov eax, dword [0x53273c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [eax]
mov ebx, dword [ecx]
mov dword [ebp - 0x774], eax
mov dword [ebp - 0x778], ecx
mov dword [ebp - 0x75c], esi
mov dword [ebp - 0x750], ebx
push edi
test esi, esi
jle 0x40ced9
mov ecx, dword [ebx + edx*4]
inc edx
movsx eax, byte [ecx]
lea ecx, [ecx + 1]
cmp eax, 0x27
ja case.0x40cd78.1
movzx eax, byte [eax + 0x40d3c0]
jmp dword [eax*4 + 0x40d3b4]
cmp edx, esi
jl 0x40cd62
xor eax, eax
mov dword [ebp - 0x758], eax
jmp 0x40cef0
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov edi, eax
test edi, edi
je 0x40ced9
mov al, byte [edi]
test al, al
je 0x40ced9
mov ecx, edi
xor esi, esi
nop
inc ecx
cmp al, 0x20
ja 0x40cdbd
test al, al
je 0x40cdce
mov al, byte [ecx]
jmp 0x40cdb0
mov al, byte [ecx]
cmp al, 0x20
jle 0x40cdcb
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x20
jg 0x40cdc3
inc esi
jmp 0x40cdb0
test esi, esi
je 0x40ced3
lea esi, [esi*4 + 4]
mov eax, esi
sub eax, edi
add eax, ecx
push eax
call fcn.0040cb50
mov ebx, eax
add esp, 4
mov eax, dword [ebp - 0x778]
mov dword [ebp - 0x750], ebx
lea ecx, [esi + ebx]
mov edx, ecx
mov dword [eax], ebx
sub edx, edi
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [edx + edi - 1], al
test al, al
jne 0x40ce03
xor esi, esi
mov dword [ebp - 0x75c], esi
movzx eax, byte [ecx]
cmp eax, 0x20
ja 0x40ce32
test eax, eax
je 0x40cec2
movzx eax, byte [ecx + 1]
inc ecx
cmp eax, 0x20
jbe 0x40ce20
mov dword [ebx + esi*4], ecx
mov edx, ecx
inc esi
mov dword [ebp - 0x75c], esi
nop
cmp eax, 0x27
je 0x40ce4a
cmp eax, 0x22
jne 0x40ce8c
mov ebx, eax
nop dword [eax]
movsx eax, byte [ecx + 1]
inc ecx
cmp eax, ebx
je 0x40ce6f
nop dword [eax]
test eax, eax
je 0x40ceb9
inc ecx
mov byte [edx], al
inc edx
movsx eax, byte [ecx]
cmp eax, ebx
jne 0x40ce60
movzx eax, byte [ecx + 1]
inc ecx
cmp eax, ebx
jne 0x40ce7d
mov byte [edx], bl
inc edx
jmp 0x40ce50
cmp eax, 0x27
je 0x40ce4a
cmp eax, 0x22
je 0x40ce4a
cmp eax, 0x20
jbe 0x40ceab
inc ecx
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
cmp eax, 0x20
ja 0x40ce40
mov ebx, dword [ebp - 0x750]
mov byte [edx], 0
test eax, eax
je 0x40cec2
inc ecx
jmp 0x40ce18
mov ebx, dword [ebp - 0x750]
mov byte [edx], 0
jmp 0x40ce18
mov ebx, dword [ebp - 0x750]
mov byte [edx], 0
mov eax, dword [ebp - 0x774]
mov dword [eax], esi
mov dword [ebx + esi*4], 0
jmp 0x40ced9
mov esi, dword [ebp - 0x75c]
xor eax, eax
mov dword [ebp - 0x758], eax
test esi, esi
jle 0x40d39d
nop dword [eax]
mov esi, dword [ebx + eax*4]
lea eax, [ebp - 0x770]
push eax
lea eax, [ebp - 0x204]
push eax
push esi
call fcn.0040cbd0
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x40cffd
cmp ebx, 1
jne 0x40cfdc
lea eax, [ebp - 0x744]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x76c], eax
cmp eax, 0xffffffff
je 0x40cffd
mov edi, dword [ebp - 0x760]
mov eax, dword [ebp - 0x75c]
lea esi, [eax + eax]
mov eax, 0x40
cmp esi, 0x3f
cmovl esi, eax
lea eax, [esi*4]
push eax
call fcn.0040cb50
mov edx, eax
add esp, 4
lea eax, [esi - 1]
mov dword [ebp - 0x754], edx
mov dword [ebp - 0x764], eax
mov eax, dword [ebp - 0x758]
mov dword [ebp - 0x74c], eax
test eax, eax
je 0x40cf9c
lea ecx, [eax*4]
push ecx
push dword [ebp - 0x750]
push edx
call fcn.004cfba0
add esp, 0xc
mov dword [ebp - 0x768], 0
mov dword [ebp - 0x748], 0
cmp ebx, 2
je 0x40d197
mov ebx, dword [ebp - 0x76c]
nop
cmp byte [ebp - 0x718], 0x2e
jne 0x40d029
mov al, byte [ebp - 0x717]
cmp al, 0x2e
jne 0x40d021
cmp byte [ebp - 0x716], 0
jmp 0x40d023
lea eax, [esi + 1]
push 0x4fcad0
push eax
call fcn.004d5440
mov edi, eax
add esp, 8
mov dword [ebp - 0x760], edi
test edi, edi
jne 0x40cf40
mov eax, dword [ebp - 0x758]
inc eax
mov dword [ebp - 0x758], eax
cmp eax, dword [ebp - 0x75c]
jge 0x40d39d
mov ebx, dword [ebp - 0x750]
jmp 0x40cef0
test al, al
je 0x40d102
lea ecx, [ebp - 0x718]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x40d032
mov esi, dword [ebp - 0x770]
sub ecx, edx
mov eax, dword [ebp - 0x768]
sub eax, dword [ebp - 0x748]
lea ebx, [ecx + 1]
lea edi, [ebx + esi]
cmp edi, eax
jle 0x40d080
lea esi, [edi + 0x3ff]
and esi, 0xfffffe00
push esi
call fcn.0040cb50
add esp, 4
mov dword [ebp - 0x748], eax
add eax, esi
mov esi, dword [ebp - 0x770]
mov dword [ebp - 0x768], eax
mov ecx, dword [ebp - 0x74c]
mov edx, dword [ebp - 0x764]
cmp ecx, edx
jl 0x40d0ac
push edx
lea eax, [ebp - 0x754]
push eax
call fcn.0040ccd0
mov ecx, dword [ebp - 0x74c]
add esp, 8
mov dword [ebp - 0x764], eax
mov edx, dword [ebp - 0x754]
mov eax, dword [ebp - 0x748]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [ebp - 0x74c], ecx
test esi, esi
je 0x40d0dd
push esi
lea ecx, [ebp - 0x204]
push ecx
push eax
call fcn.004cfba0
add esp, 0xc
add dword [ebp - 0x748], esi
mov esi, dword [ebp - 0x748]
lea eax, [ebp - 0x718]
push ebx
push eax
push esi
call fcn.004cfba0
mov ebx, dword [ebp - 0x76c]
add esp, 0xc
add esi, edi
mov dword [ebp - 0x748], esi
lea eax, [ebp - 0x744]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40cfc0
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x754]
mov ebx, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x758]
inc ecx
mov dword [ebp - 0x758], ecx
cmp ecx, dword [ebp - 0x75c]
jge 0x40d386
mov eax, dword [ebp - 0x750]
mov esi, dword [eax + ecx*4]
lea eax, [ebp - 0x770]
push eax
lea eax, [ebp - 0x204]
push eax
push esi
call fcn.0040cbd0
add esp, 0xc
sub eax, 1
je 0x40d32c
sub eax, 1
jne 0x40d351
lea eax, [esi + 1]
push 0x4fcad0
push eax
call fcn.004d5440
mov edi, eax
add esp, 8
mov dword [ebp - 0x760], edi
test edi, edi
je 0x40d351
push edi
call fcn.004d7548
mov ebx, eax
add esp, 4
cmp ebx, 0x20
jg 0x40d1c0
cmp ebx, 0xffffffff
je 0x40d31e
push edi
call fcn.004d7548
mov ebx, eax
add esp, 4
cmp ebx, 0x20
jle 0x40d1a7
cmp ebx, 0x27
je 0x40d1d7
cmp ebx, 0x22
je 0x40d1d7
mov edi, 1
mov byte [ebp - 0x604], bl
jmp 0x40d245
xor edi, edi
nop dword [eax]
mov esi, ebx
push dword [ebp - 0x760]
call fcn.004d7548
mov ebx, eax
add esp, 4
cmp ebx, 0xffffffff
je 0x40d269
cmp ebx, esi
jne 0x40d214
push dword [ebp - 0x760]
call fcn.004d7548
mov ebx, eax
add esp, 4
cmp ebx, 0xffffffff
je 0x40d269
cmp ebx, esi
jne 0x40d226
cmp edi, 0x3fe
jae 0x40d1e2
mov byte [ebp + edi - 0x604], bl
inc edi
jmp 0x40d1e2
cmp ebx, 0x27
je 0x40d1e0
cmp ebx, 0x22
je 0x40d1e0
cmp ebx, 0x20
jle 0x40d269
cmp edi, 0x3fe
jae 0x40d245
mov byte [ebp + edi - 0x604], bl
inc edi
push dword [ebp - 0x760]
call fcn.004d7548
mov ebx, eax
add esp, 4
cmp ebx, 0x20
jle 0x40d269
cmp ebx, 0x27
je 0x40d1e0
cmp ebx, 0x22
jne 0x40d235
jmp 0x40d1e0
mov eax, edi
inc edi
cmp eax, 0x400
jae 0x40d3ae
mov esi, dword [ebp - 0x748]
mov byte [ebp + eax - 0x604], 0
mov eax, dword [ebp - 0x768]
sub eax, esi
cmp edi, eax
jle 0x40d2ba
lea esi, [edi + 0x3ff]
and esi, 0xfffffe00
push esi
call fcn.0040cb50
mov dword [ebp - 0x748], eax
add esp, 4
add eax, esi
mov esi, dword [ebp - 0x748]
mov dword [ebp - 0x768], eax
mov eax, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x764]
cmp eax, ecx
jl 0x40d2e6
push ecx
lea eax, [ebp - 0x754]
push eax
call fcn.0040ccd0
mov dword [ebp - 0x764], eax
add esp, 8
mov eax, dword [ebp - 0x74c]
mov ecx, dword [ebp - 0x754]
push edi
mov dword [ecx + eax*4], esi
inc eax
mov dword [ebp - 0x74c], eax
lea eax, [ebp - 0x604]
push eax
push esi
call fcn.004cfba0
add esi, edi
add esp, 0xc
mov edi, dword [ebp - 0x760]
mov dword [ebp - 0x748], esi
cmp ebx, 0xffffffff
jne 0x40d197
push edi
call fcn.004d5359
add esp, 4
jmp 0x40d11f
lea eax, [ebp - 0x744]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
mov dword [ebp - 0x76c], ebx
cmp ebx, 0xffffffff
jne 0x40cfc0
mov ebx, dword [ebp - 0x74c]
mov eax, dword [ebp - 0x764]
cmp ebx, eax
jl 0x40d371
push eax
lea eax, [ebp - 0x754]
push eax
call fcn.0040ccd0
add esp, 8
mov dword [ebp - 0x764], eax
mov eax, dword [ebp - 0x754]
mov dword [eax + ebx*4], esi
inc ebx
mov dword [ebp - 0x74c], ebx
jmp 0x40d12b
std
invalid
mov ecx, dword [ebp - 0x774]
mov dword [eax + ebx*4], 0
mov dword [ecx], ebx
mov ecx, dword [ebp - 0x778]
mov dword [ecx], eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004ceaf9
mov esp, ebp
pop ebp
ret
call fcn.004cee9d
nop
jg 0x40d383
inc eax
add byte [eax + 0x660040cd], dl
int 0x40
add byte [eax], al
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [edx]
add al, byte [ecx]
add al, byte [ecx]
add al, byte [edx]
add al, byte [edx]
add esp, ecx
int3