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

Disassembly:
sub esp, 0x10
push ebx
push ebp
push esi
push edi
push 0x104
mov esi, 0x100ac20
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 0x1003d1b
sub eax, ecx
lea eax, [eax + 0x100ac20]
jmp 0x1003d36
lea ecx, [eax - 1]
cmp byte [ecx], 0x5c
je 0x1003d3a
mov eax, ecx
cmp eax, esi
ja 0x1003d2c
push eax
call fcn.01003b2f
push esi
mov dword [0x100a190], eax
call fcn.01002e23
call dword [sym.imp.kernel32.dll_GetCommandLineA]
mov ebp, eax
mov dword [esp + 0x18], ebp
xor ecx, ecx
mov al, byte [ebp]
cmp al, 0x20
je 0x1003d68
cmp al, 9
je 0x1003d68
cmp al, 0x22
jne 0x1003d72
cmp al, 0x22
jne 0x1003d6f
xor ecx, ecx
inc ecx
inc ebp
jmp 0x1003d59
test ecx, ecx
mov dword [esp + 0x18], ebp
je 0x1003d92
cmp byte [ebp], 0
mov eax, ebp
je 0x1003d92
cmp byte [eax], 0x22
je 0x1003d8f
inc eax
cmp byte [eax], 0
jne 0x1003d82
jmp 0x1003d92
mov byte [eax], 0x20
mov eax, ebp
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003d97
sub eax, ecx
lea eax, [eax + ebp - 1]
jmp 0x1003db6
mov cl, byte [eax]
cmp cl, 0x20
je 0x1003db2
cmp cl, 9
jne 0x1003dba
mov byte [eax], 0
dec eax
cmp eax, ebp
jae 0x1003da6
mov ecx, dword [0x100a190]
and dword [esp + 0x10], 0
mov eax, ecx
mov byte [0x100ae80], 0
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x1003dd1
sub eax, esi
lea edx, [eax + ecx - 1]
jmp 0x1003de6
cmp byte [edx], 0x2e
je 0x1003dec
dec edx
cmp edx, ecx
ja 0x1003de0
jmp 0x1003e1f
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003df1
sub eax, esi
lea ecx, [eax + 1]
mov dword [esp + 0x10], eax
mov eax, ecx
shr ecx, 2
mov esi, edx
mov edi, 0x100ae80
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 ecx, dword [0x100a190]
mov dword [0x100a188], 0x100226b
cmp byte [ebp], 0
mov esi, ebp
jmp 0x1003f29
mov al, byte [esi]
mov dl, byte [ecx]
or al, 0x20
or dl, 0x20
cmp al, dl
jne 0x1003f21
lea ebp, [esi + 1]
lea esi, [ecx + 1]
jmp 0x1003e53
test al, al
je 0x1003e6c
inc ebp
inc esi
mov al, byte [esi]
mov dl, byte [ebp]
mov bl, al
or dl, 0x20
or bl, 0x20
cmp bl, dl
je 0x1003e4d
test al, al
jne 0x1003f21
xor edi, edi
cmp byte [ebp], 0x2e
mov dword [esp + 0x14], edi
jne 0x1003eb1
cmp dword [esp + 0x10], edi
jbe 0x1003eb1
mov eax, ebp
mov dword [esp + 0x14], 1
sub eax, 0x100ae80
lea esi, [edi + 0x100ae80]
mov dl, byte [eax + esi]
mov bl, byte [esi]
or dl, 0x20
or bl, 0x20
cmp dl, bl
jne 0x1003f35
inc edi
cmp edi, dword [esp + 0x10]
jb 0x1003e8d
add ebp, dword [esp + 0x10]
mov al, byte [ebp]
cmp al, 0x20
je 0x1003ec0
cmp al, 9
je 0x1003ec0
test al, al
jne 0x1003f21
mov esi, dword [esp + 0x18]
mov eax, ebp
sub eax, esi
mov ecx, eax
mov ebx, ecx
shr ecx, 2
mov edx, 0x100a8c0
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
cmp dword [esp + 0x14], 0
rep movsb byte es:[edi], byte [esi]
lea edi, [eax + 0x100a8c0]
mov byte [edi], 0
jne 0x1003f10
mov ecx, dword [esp + 0x10]
mov ebx, ecx
shr ecx, 2
mov esi, 0x100ae80
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
mov byte [eax + ecx + 0x100a8c0], 0
push edx
call dword [sym.imp.kernel32.dll_GetFileAttributesA]
test al, 0x10
je 0x1003f3f
mov ecx, dword [0x100a190]
mov esi, dword [esp + 0x1c]
inc esi
cmp byte [esi], 0
mov dword [esp + 0x1c], esi
jne 0x1003e34
jmp 0x1003f45
and dword [esp + 0x14], 0
jmp 0x1003eb1
mov dword [0x100a188], ebp
mov edi, dword [0x100a188]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f50
sub eax, edx
cmp eax, 3
jb 0x100415b
add eax, 0xfffffffe
mov dword [esp + 0x14], eax
je 0x100415b
mov ebx, dword [sym.imp.msvcrt.dll__strnicmp]
cmp byte [edi], 0x20
jne 0x100414b
lea ebp, [edi + 4]
mov al, byte [ebp - 3]
cmp al, 0x2d
je 0x1003f90
cmp al, 0x2f
jne 0x100414b
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1003f95
sub eax, edx
cmp eax, 2
jbe 0x100414b
lea esi, [edi + 2]
movsx eax, byte [esi]
cmp eax, 0x65
jg 0x1004076
je 0x1004029
sub eax, 0x45
je 0x1004029
sub eax, 4
je 0x1004130
sub eax, 7
je 0x1004108
dec eax
je 0x10040d8
dec eax
dec eax
je 0x10040c9
dec eax
dec eax
je 0x10040c4
sub eax, 3
jne 0x100414b
mov al, byte [edi + 3]
cmp al, 0x3a
je 0x100403d
cmp al, 0x50
je 0x10040a3
cmp al, 0x58
je 0x100407e
cmp al, 0x70
je 0x10040a3
cmp al, 0x78
je 0x100407e
cmp al, 0x20
je 0x100401a
test al, al
jne 0x100414b
mov dword [0x100a18c], 1
jmp 0x100414b
push 8
push 0x10024a0
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x100405c
add ebp, 6
push ebp
mov dword [0x100a18c], 1
call fcn.01002d5e
test eax, eax
jne 0x100414b
push 0x52
call fcn.0100832f
push 7
push 0x1002498
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x100414b
mov al, byte [edi + 9]
jmp 0x100400e
sub eax, 0x69
jmp 0x1003fc0
mov al, byte [ebp]
cmp al, 0x20
je 0x100408d
test al, al
jne 0x100414b
and dword [0x100a004], 0
mov dword [0x100a18c], 1
jmp 0x100414b
mov al, byte [ebp]
cmp al, 0x20
je 0x10040b2
test al, al
jne 0x100414b
xor eax, eax
inc eax
mov dword [0x100a18c], eax
mov dword [0x100a054], eax
jmp 0x100414b
mov al, byte [edi + 3]
jmp 0x100411c
mov al, byte [edi + 3]
cmp al, 0x3a
je 0x1004141
cmp al, 0x20
je 0x1004141
test al, al
jmp 0x100413f
push 5
push 0x1002490
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x1004103
mov al, byte [ebp + 3]
cmp al, 0x20
je 0x10040f4
test al, al
jne 0x100414b
xor eax, eax
inc eax
mov dword [0x100a194], eax
mov dword [0x101b0c0], eax
jmp 0x100414b
mov al, byte [edi + 3]
jmp 0x10040ec
push 7
push 0x1002488
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x100414b
mov al, byte [edi + 9]
cmp al, 0x20
je 0x1004124
test al, al
jne 0x100414b
mov dword [0x101b0c0], 1
jmp 0x100414b
push 9
push 0x100247c
push esi
call ebx
add esp, 0xc
test eax, eax
jne 0x100414b
mov dword [0x100aae8], 1
dec dword [esp + 0x14]
inc edi
cmp dword [esp + 0x14], 0
ja 0x1003f75
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret