Function at 0x4011c0
Capabilities:
Accept command line arguments

Disassembly:
sub esp, 0x18
mov ecx, dword [esp + 0x20]
push ebx
push ebp
push esi
lea eax, [esp + 0x1c]
push eax
push ecx
xor ebx, ebx
xor esi, esi
xor ebp, ebp
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
push 2
mov dword [esp + 0x1c], eax
call fcn.0040352b
mov edx, dword [esp + 0x34]
xor ecx, ecx
add esp, 4
mov word [eax], cx
mov dword [edx], eax
mov dword [esp + 0x10], ebx
cmp dword [esp + 0x1c], ebx
jle 0x401630
push edi
mov eax, dword [esp + 0x30]
mov ecx, 0x4102cc
lea ecx, [ecx]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401236
test dx, dx
je 0x401232
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401236
add eax, 4
add ecx, 4
test dx, dx
jne 0x401210
xor eax, eax
jmp 0x40123b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x401608
mov byte [esp + 0x13], 0
mov byte [esp + 0x12], 1
test esi, esi
je 0x40125a
push esi
call fcn.00403545
add esp, 4
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x14]
mov eax, dword [edx + eax*4]
lea edx, [eax + 2]
jmp 0x401270
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401270
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040352b
mov ecx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + ecx*4]
add esp, 4
mov dword [esp + 0x18], esi
mov edx, esi
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x4012b0
test ebx, ebx
je 0x4012ce
push ebx
call fcn.00403545
add esp, 4
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4012d3
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040352b
mov ebx, eax
mov eax, 0x4102cc
mov edx, ebx
add esp, 4
sub edx, eax
jmp 0x401310
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x401310
xor edi, edi
cmp word [esi], di
je 0x40135c
mov eax, dword [esp + 0x18]
xor esi, esi
lea esp, [esp]
movzx eax, word [eax]
cmp eax, 0x7a
ja 0x401346
cmp eax, 0x61
jb 0x401346
push eax
call fcn.004040a7
add esp, 4
mov ecx, dword [esp + 0x18]
mov word [esi + ebx], ax
inc edi
lea esi, [edi + edi]
cmp word [esi + ecx], 0
lea eax, [esi + ecx]
jne 0x401330
xor edx, edx
mov word [ebx + edi*2], dx
mov ecx, str._DEBUG
mov eax, ebx
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401396
test dx, dx
je 0x401392
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401396
add eax, 4
add ecx, 4
test dx, dx
jne 0x401370
xor eax, eax
jmp 0x40139b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4013a9
mov eax, dword [esp + 0x2c]
mov byte [eax + 0x10], 1
jmp 0x4013e7
mov ecx, str._SILENT
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4013d6
test dx, dx
je 0x4013d2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4013d6
add eax, 4
add ecx, 4
test dx, dx
jne 0x4013b0
xor eax, eax
jmp 0x4013db
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4013e7
mov ecx, dword [esp + 0x2c]
mov byte [ecx + 0x12], 1
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
dec edx
cmp edi, edx
jge 0x4015b1
test ebp, ebp
je 0x401405
push ebp
call fcn.00403545
add esp, 4
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + edi*4 + 4]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401410
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040352b
mov edi, dword [esp + 0x18]
mov ebp, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + edi*4 + 4]
add esp, 4
mov edx, ebp
lea esp, [esp]
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x401450
cmp word [ebp], 0x2d
je 0x4015b1
mov eax, ebp
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401471
sub eax, edx
sar eax, 1
je 0x4015b1
mov byte [esp + 0x13], 1
mov ecx, str._USETEMPDIR
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4014b8
test dx, dx
je 0x4014b4
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4014b8
add eax, 4
add ecx, 4
test dx, dx
jne 0x401492
xor eax, eax
jmp 0x4014bd
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x401518
mov byte [esp + 0x12], al
mov eax, ebp
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4014d0
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040352b
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
add esp, 4
mov ecx, ebp
mov edx, eax
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x401503
mov edi, dword [esp + 0x14]
mov ecx, str._LAUNCHDIR
mov eax, ebx
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x401546
test dx, dx
je 0x401542
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x401546
add eax, 4
add ecx, 4
test dx, dx
jne 0x401520
xor eax, eax
jmp 0x40154b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4015a9
mov eax, ebp
mov byte [esp + 0x12], 1
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x401560
sub eax, edx
sar eax, 1
xor ecx, ecx
inc eax
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0040352b
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], eax
add esp, 4
mov ecx, ebp
mov edx, eax
movzx eax, word [ecx]
mov word [edx], ax
add ecx, 2
add edx, 2
test ax, ax
jne 0x401594
mov edi, dword [esp + 0x14]
inc edi
cmp byte [esp + 0x12], 0
je 0x4015f5
mov esi, dword [esp + 0x34]
push esi
mov eax, 0x410320
call fcn.00401970
mov eax, dword [esp + 0x1c]
push esi
call fcn.00401970
add esp, 8
cmp byte [esp + 0x13], 0
je 0x4015f5
push esi
mov eax, 0x410324
call fcn.00401970
push esi
mov eax, ebp
call fcn.00401970
push esi
mov eax, 0x41029c
call fcn.00401970
add esp, 0xc
mov esi, dword [esp + 0x18]
inc edi
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x20]
jl 0x401204
pop edi
test esi, esi
je 0x401616
push esi
call fcn.00403545
add esp, 4
test ebx, ebx
je 0x401623
push ebx
call fcn.00403545
add esp, 4
test ebp, ebp
je 0x401630
push ebp
call fcn.00403545
add esp, 4
mov edx, dword [esp + 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_LocalFree]
pop esi
pop ebp
pop ebx
add esp, 0x18
ret