Function at 0x100400d
Capabilities:
Accept command line arguments
Get file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
push 0x104
mov esi, 0x100cf40
push esi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, esi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1004030
sub eax, ecx
lea eax, [eax + 0x100cf40]
jmp 0x100404b
lea ecx, [eax - 1]
cmp byte [ecx], 0x5c
je 0x100404f
mov eax, ecx
cmp eax, esi
ja 0x1004041
push eax
call fcn.01003e3a
push esi
mov dword [0x100c4b0], eax
call fcn.01003016
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov ebx, eax
mov dword [ebp - 0x14], ebx
xor ecx, ecx
mov al, byte [ebx]
cmp al, 0x20
je 0x100407b
cmp al, 9
je 0x100407b
cmp al, 0x22
jne 0x1004085
cmp al, 0x22
jne 0x1004082
xor ecx, ecx
inc ecx
inc ebx
jmp 0x100406d
test ecx, ecx
mov dword [ebp - 0x14], ebx
je 0x10040a3
cmp byte [ebx], 0
mov eax, ebx
je 0x10040a3
cmp byte [eax], 0x22
je 0x10040a0
inc eax
cmp byte [eax], 0
jne 0x1004093
jmp 0x10040a3
mov byte [eax], 0x20
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10040a8
sub eax, edx
lea eax, [eax + ebx - 1]
jmp 0x10040c7
mov cl, byte [eax]
cmp cl, 0x20
je 0x10040c3
cmp cl, 9
jne 0x10040cb
mov byte [eax], 0
dec eax
cmp eax, ebx
jae 0x10040b7
mov eax, dword [0x100c4b0]
and dword [ebp - 4], 0
mov ecx, eax
mov byte [0x100d1a0], 0
lea esi, [ecx + 1]
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x10040e0
sub ecx, esi
lea edx, [ecx + eax - 1]
jmp 0x10040f5
cmp byte [edx], 0x2e
je 0x10040fb
dec edx
cmp edx, eax
ja 0x10040ef
jmp 0x100412c
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1004100
sub eax, esi
lea ecx, [eax + 1]
mov dword [ebp - 4], eax
mov eax, ecx
shr ecx, 2
mov esi, edx
mov edi, 0x100d1a0
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [edx], 0
mov eax, dword [0x100c4b0]
mov dword [0x100c4a8], 0x10022bb
cmp byte [ebx], 0
mov dword [ebp - 8], ebx
je 0x1004252
mov ecx, dword [ebp - 8]
mov cl, byte [ecx]
mov dl, byte [eax]
or cl, 0x20
or dl, 0x20
cmp cl, dl
jne 0x1004232
mov ebx, dword [ebp - 8]
inc ebx
lea esi, [eax + 1]
jmp 0x1004167
cmp byte [esi], 0
je 0x100417e
inc ebx
inc esi
mov dl, byte [ebx]
mov cl, byte [esi]
or dl, 0x20
or cl, 0x20
cmp cl, dl
je 0x1004160
cmp byte [esi], 0
jne 0x1004232
xor edi, edi
cmp byte [ebx], 0x2e
mov dword [ebp - 0x10], edi
jne 0x10041c3
cmp dword [ebp - 4], edi
jbe 0x10041c3
mov dword [ebp - 0xc], ebx
sub dword [ebp - 0xc], 0x100d1a0
mov dword [ebp - 0x10], 1
mov ecx, dword [ebp - 0xc]
lea esi, [edi + 0x100d1a0]
mov cl, byte [ecx + esi]
mov dl, byte [esi]
or cl, 0x20
or dl, 0x20
cmp cl, dl
jne 0x1004243
inc edi
cmp edi, dword [ebp - 4]
jb 0x100419e
add ebx, dword [ebp - 4]
mov cl, byte [ebx]
cmp cl, 0x20
je 0x10041d3
cmp cl, 9
je 0x10041d3
test cl, cl
jne 0x1004232
mov esi, dword [ebp - 0x14]
mov eax, ebx
sub eax, esi
mov ecx, eax
mov edx, ecx
shr ecx, 2
mov edi, 0x100cbe0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
cmp dword [ebp - 0x10], 0
rep movsb byte es:[edi], byte [esi]
lea edi, [eax + 0x100cbe0]
mov byte [edi], 0
jne 0x100421e
mov ecx, dword [ebp - 4]
mov edx, ecx
shr ecx, 2
mov esi, 0x100d1a0
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
mov byte [eax + ecx + 0x100cbe0], 0
push 0x100cbe0
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test al, 0x10
je 0x100424c
mov eax, dword [0x100c4b0]
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
cmp byte [ecx], 0
jne 0x1004142
jmp 0x1004252
and dword [ebp - 0x10], 0
jmp 0x10041c3
mov dword [0x100c4a8], ebx
mov edi, dword [0x100c4a8]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100425d
sub eax, edx
cmp eax, 3
jb 0x1004475
add eax, 0xfffffffe
mov dword [ebp - 0x10], eax
je 0x1004475