Function at 0x40ac32
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x2c
call sub.KERNEL32.dll_GetCommandLineA
cmp dword [ebp + 8], 0
mov dword [ebp - 0x1c], eax
jne 0x40ac57
mov dword [esp], 0x57
call sub.KERNEL32.dll_SetLastError
jmp 0x40aca8
mov eax, dword [ebp - 0x1c]
mov al, byte [eax]
test al, al
jne 0x40accb
mov edi, 0x10c
mov esi, 0x104
mov dword [esp + 4], edi
mov dword [esp], 0
call sub.KERNEL32.dll_LocalAlloc
mov ebx, eax
test eax, eax
push edx
push edx
je 0x40aca9
lea edi, [eax + 8]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], 0
call sub.KERNEL32.dll_GetModuleFileNameA
sub esp, 0xc
test eax, eax
jne 0x40acb0
mov dword [esp], ebx
call sub.KERNEL32.dll_LocalFree
push eax
xor eax, eax
jmp 0x40af2a
cmp esi, eax
jg 0x40acc4
mov dword [esp], ebx
add esi, esi
call sub.KERNEL32.dll_LocalFree
lea edi, [esi + 8]
push eax
jmp 0x40ac6a
mov dword [ebx], edi
jmp 0x40ae1a
cmp al, 0x22
je 0x40acd4
mov ecx, dword [ebp - 0x1c]
jmp 0x40acec
mov eax, dword [ebp - 0x1c]
lea ecx, [eax + 1]
mov al, byte [ecx]
test al, al
je 0x40ad0e
inc ecx
cmp al, 0x22
jne 0x40acda
jmp 0x40acf9
cmp al, 9
je 0x40acf9
inc ecx
mov al, byte [ecx]
test al, 0xdf
jne 0x40ace7
jmp 0x40acf9
cmp al, 9
jne 0x40ad01
inc ecx
mov al, byte [ecx]
cmp al, 0x20
jne 0x40acf4
jmp 0x40acf8
test al, al
je 0x40ad0e
mov dword [ebp - 0x20], 2
jmp 0x40ad48
mov dword [ebp - 0x20], 1
jmp 0x40ad48
cmp al, 0x5c
lea ecx, [ecx + 1]
jne 0x40ad51
inc edi
mov al, byte [ecx]
test al, al
je 0x40ad80
cmp al, 0x20
sete dl
cmp al, 9
sete bl
or bl, dl
je 0x40ad17
test esi, esi
jne 0x40ad17
mov al, byte [ecx]
cmp al, 0x20
je 0x40ad4e
cmp al, 9
je 0x40ad4e
test al, al
je 0x40ad48
inc dword [ebp - 0x20]
xor edi, edi
xor esi, esi
jmp 0x40ad1f
inc ecx
jmp 0x40ad37
cmp al, 0x22
jne 0x40ad7c
and edi, 1
cmp edi, 1
adc esi, 0
cmp byte [ecx], 0x22
jne 0x40ad67
inc esi
inc ecx
jmp 0x40ad5e
mov eax, esi
mov ebx, 3
cdq
idiv ebx
xor edi, edi
mov esi, edx
cmp edx, 2
jne 0x40ad1f
jmp 0x40ad4a
xor edi, edi
jmp 0x40ad1f
mov eax, dword [ebp - 0x20]
lea esi, [eax*4 + 4]
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sub.KERNEL32.dll_lstrlenA
lea eax, [esi + eax + 1]
push ecx
mov dword [esp + 4], eax
mov dword [esp], 0
call sub.KERNEL32.dll_LocalAlloc
test eax, eax
push ebx
push ebx
mov ebx, eax
je 0x40aca9
mov eax, dword [ebp - 0x1c]
mov dword [esp + 4], eax
lea eax, [ebx + esi]
mov dword [esp], eax
call sub.KERNEL32.dll_lstrcpyA
push edx
push edx
mov dword [ebx], eax
lea edx, [eax + 1]
cmp byte [eax], 0x22
jne 0x40adf0
mov cl, byte [edx]
lea eax, [edx - 1]
test cl, cl
je 0x40ae04
cmp cl, 0x22
lea edx, [edx + 1]
je 0x40ae04
mov byte [edx - 2], cl
jmp 0x40add4
cmp dl, 9
je 0x40adf9
inc eax
mov dl, byte [eax]
test dl, 0xdf
jne 0x40adea
jmp 0x40adfe
lea edx, [eax + 1]
jmp 0x40ae04
test dl, dl
jne 0x40adf9
mov edx, eax
mov byte [eax], 0
mov cl, byte [edx]
cmp cl, 0x20
jne 0x40ae11
inc edx
jmp 0x40ae07
cmp cl, 9
je 0x40ae0e
test cl, cl
jne 0x40ae2f
mov dword [ebx + 4], 0
mov eax, dword [ebp + 8]
mov dword [eax], 1
jmp 0x40af28
lea esi, [eax + 1]
mov dword [ebp - 0x24], 2
mov dword [ebx + 4], esi
mov dword [ebp - 0x1c], 0
xor edi, edi
mov al, byte [edx]
mov byte [ebp - 0x20], al
test al, al
je 0x40af13
cmp byte [ebp - 0x20], 0x20
sete al
cmp byte [ebp - 0x20], 9
sete cl
or cl, al
je 0x40ae8f
test edi, edi
jne 0x40ae8f
lea eax, [esi + 1]
mov byte [esi], 0
inc edx
mov cl, byte [edx]
cmp cl, 0x20
je 0x40ae6e
cmp cl, 9
je 0x40ae6e
test cl, cl
je 0x40af03
mov edi, dword [ebp - 0x24]
mov dword [ebx + edi*4], eax
inc edi
mov dword [ebp - 0x24], edi
jmp 0x40af03
lea eax, [edx + 1]
cmp byte [ebp - 0x20], 0x5c
mov ecx, eax
jne 0x40aea7
lea eax, [esi + 1]
mov edx, ecx
mov byte [esi], 0x5c
inc dword [ebp - 0x1c]
jmp 0x40af0c
cmp byte [ebp - 0x20], 0x22
jne 0x40aef0
test byte [ebp - 0x1c], 1
jne 0x40aebf
mov eax, dword [ebp - 0x1c]
inc edi
sar eax, 1
sub esi, eax
mov eax, esi
jmp 0x40aedc
mov ecx, dword [ebp - 0x1c]
mov eax, esi
sar ecx, 1
sub eax, ecx
not ecx
mov byte [esi + ecx], 0x22
jmp 0x40aedc
inc edi
cmp edi, 3
jne 0x40aedc
mov byte [eax], 0x22
xor edi, edi
inc eax
inc edx
cmp byte [edx], 0x22
je 0x40aed0
mov dword [ebp - 0x1c], 0
cmp edi, 2
jne 0x40af0c
jmp 0x40af0a
mov edx, ecx
mov cl, byte [ebp - 0x20]
lea eax, [esi + 1]
mov byte [esi], cl
mov dword [ebp - 0x1c], 0
jmp 0x40af0c
mov dword [ebp - 0x1c], 0
xor edi, edi
mov esi, eax
jmp 0x40ae45
mov eax, dword [ebp - 0x24]
mov byte [esi], 0
mov edx, dword [ebp - 0x24]
mov dword [ebx + eax*4], 0
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret