Function at 0x40ff51
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x23c
mov eax, dword [0x5b41f4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
push esi
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x234], eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
push esi
mov dword [ebp - 0x228], esi
call ebx
test eax, eax
je 0x410a68
push edi
push esi
call fcn.0040d81b
pop ecx
push esi
call ebx
lea eax, [eax*2 + 2]
push eax
push 0x40
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov edi, eax
push esi
mov dword [ebp - 0x238], edi
call ebx
lea eax, [eax*2 + 2]
push eax
push 0x40
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push dword [ebp - 0x228]
mov esi, eax
mov dword [ebp - 0x220], esi
call ebx
lea eax, [eax*2 + 2]
push eax
push 0x40
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push eax
push edi
push dword [ebp - 0x228]
mov dword [ebp - 0x224], eax
call fcn.0040d815
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
add esp, 0xc
mov dword [ebp - 0x230], SysStringLen
push esi
push edi
push dword [ebp - 0x224]
call fcn.0040d815
add esp, 0xc
test eax, eax
je 0x410a53
cmp dword [ebp - 0x22c], 0
jne 0x4108fa
push 0x5632a4
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x410057
mov dword [0x5b9e94], 2
inc eax
jmp 0x41006d
push 0x5632a8
push edi
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x410078
inc eax
mov dword [0x5b9e94], eax
mov dword [ebp - 0x22c], eax
jmp case.0x410290.64
movzx eax, word [edi]
cmp eax, 0x2f
je 0x41008c
push 0x2d
pop ecx
cmp ax, cx
jne 0x4108fa
push 0x5632ac
push edi
call fcn.0040d80f
pop ecx
pop ecx
push 0x5632b4
push edi
call ebx
test eax, eax
je 0x4108ed
push 0x5632c0
push edi
call ebx
test eax, eax
je 0x4108ed
push 0x5632c4
push edi
call ebx
test eax, eax
je 0x4108ed
push str.UNICODE
push edi
call ebx
test eax, eax
je 0x4108de
push 0x5632e0
push edi
call ebx
test eax, eax
je 0x4108de
push 0x5632e4
push edi
call ebx
test eax, eax
je 0x4108cf
push str.UNICODE_BE
push edi
call ebx
test eax, eax
je 0x4108cf
push str.UTF8
push edi
call ebx
test eax, eax
je 0x4108c0
push 0x56331c
push edi
call ebx
test eax, eax
je 0x4108c0
push str.UTF8SIG
push edi
call ebx
test eax, eax
je 0x4108b1
push str.UTF_8SIG
push edi
call ebx
test eax, eax
je 0x4108b1
push str.UTF8SIGNATURE
push edi
call ebx
test eax, eax
je 0x4108b1
push str.UTF_8SIGNATURE
push edi
call ebx
test eax, eax
je 0x4108b1
push str.UTF8_SIGNATURE
push edi
call ebx
test eax, eax
je 0x4108b1
push str.UTF_8_SIGNATURE
push edi
call ebx
test eax, eax
je 0x4108b1
push 0x5633c8
push edi
call ebx
test eax, eax
je 0x4108a4
push 0x5633d4
push edi
call ebx
test eax, eax
je 0x4108a4
push 0x5633e0
push edi
call ebx
test eax, eax
jne 0x4101c4
mov dword [0x5b9ed8], 2
jmp case.0x410290.64
push 0x5633e8
push edi
call ebx
test eax, eax
jne 0x4101df
mov dword [0x5b9ed8], 3
jmp case.0x410290.64
push 6
push str.appid
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x410234
push 0x20
lea eax, [edi + 0xc]
push eax
push 0x5b9c48
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
push 0x563400
push 0x5b9c48
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
push 0x5b9c48
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jne case.0x410290.64
push 0x563404
push 0x5b9c48
jmp 0x410334
push 7
push str.sysmru
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x41027a
push 8
lea eax, [edi + 0xe]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
push 0x563428
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
xor eax, eax
cmp word [ebp - 0x14], 0x31
sete al
inc eax
mov dword [0x5b9ef0], eax
jmp case.0x410290.64
push edi
call dword [sym.imp.USER32.dll_CharUpperW]
movzx eax, word [eax]
add eax, 0xffffffc1
cmp eax, 0x1b
ja case.0x410290.64
jmp dword [eax*4 + 0x410a79]
xor eax, eax
mov dword [0x5b9e90], eax
inc eax
mov dword [0x5b9c44], eax
lea eax, [edi + 2]
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x53
xor ecx, ecx
pop edx
cmp word [eax], dx
sete cl
mov dword [0x5b9e98], ecx
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9e90], eax
xor eax, eax
jmp 0x41029f
push 0x30
lea eax, [edi + 2]
pop ecx
cmp word [eax], cx
je 0x41032a
push eax
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x4f
pop ecx
cmp word [eax], cx
je 0x41032a
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
push 0x104
push edi
push 0x5b7cb8
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
push 0x5b7cb8
call fcn.0040d812
mov dword [esp], 0x5b7cb8
call dword [sym.imp.SHLWAPI.dll_PathUnquoteSpacesW]
jmp case.0x410290.64
push 0x56342c
push 0x5b7cb8
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9e9c], eax
jmp case.0x410290.64
lea ecx, [edi + 2]
movzx eax, word [ecx]
push 0x30
pop edx
cmp ax, dx
je 0x410376
push 0x2d
pop edx
cmp ax, dx
je 0x410376
push ecx
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x4f
pop ecx
cmp word [eax], cx
je 0x410376
push 2
pop eax
jmp 0x410379
xor eax, eax
inc eax
mov dword [0x5b9ea0], eax
jmp case.0x410290.64
push 4
push str.POS:
push edi
mov esi, edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x410461
lea esi, [edi + 6]
add esi, 2
push 0x30
pop eax
cmp word [esi], ax
je 0x4105f4
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x4f
pop ecx
cmp word [eax], cx
je 0x4105f4
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
cmp word [eax], 0x44
je 0x4105d0
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x53
pop ecx
cmp word [eax], cx
je 0x4105d0
movzx eax, word [esi]
push eax
push str.FLTRBM
call dword [sym.imp.SHLWAPI.dll_StrChrIW]
test eax, eax
je 0x41052e
xor eax, eax
inc eax
mov dword [0x5b9ec4], eax
xor eax, eax
mov dword [0x5b9ec8], eax
cmp word [esi], ax
je 0x410516
push 0x40
xor ebx, ebx
pop edi
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
movzx eax, word [eax]
sub eax, 0x42
je 0x4104e8
sub eax, 4
je 0x4104dc
sub eax, 6
je 0x4104cf
sub eax, 1
je 0x4104be
sub eax, 5
je 0x4104b1
dec eax
sub eax, 1
jne 0x4104f8
mov eax, dword [0x5b9ec8]
and eax, 0xffffff9f
or eax, 0x10
jmp 0x4104f3
push 3
push 0x563440
push edi
call dword [sym.imp.SHLWAPI.dll_StrCmpNIW]
test eax, eax
jne 0x41047b
lea esi, [edi + 4]
jmp 0x41039e
movzx ecx, word [edi + 2]
cmp ecx, 0x3a
jne 0x41048c
lea esi, [edi + 2]
jmp 0x41039e
cmp dword [ebp - 0x234], 0
je 0x41039e
mov esi, dword [ebp - 0x220]
cmp ecx, 0x54
jne case.0x410290.64
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
jmp case.0x410290.64
mov eax, dword [0x5b9ec8]
and eax, 0xffffffbb
or eax, 8
jmp 0x4104f3
mov eax, dword [0x5b9ec8]
test eax, eax
cmove eax, edi
or eax, 0x80
jmp 0x4104f3
mov eax, dword [0x5b9ec8]
and eax, 0xffffffb7
or eax, 4
jmp 0x4104f3
mov eax, dword [0x5b9ec8]
and eax, 0xffffffc3
or eax, edi
jmp 0x4104f3
mov eax, dword [0x5b9ec8]
and eax, 0xffffffaf
or eax, 0x20
mov dword [0x5b9ec8], eax
push esi
call dword [sym.imp.USER32.dll_CharNextW]
mov esi, eax
cmp word [esi], bx
jne 0x410418
mov edi, dword [ebp - 0x238]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov esi, dword [ebp - 0x220]
push esi
push dword [ebp - 0x224]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
jmp 0x410015
mov esi, dword [ebp - 0x220]
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
push 0x5bd130
push 0x5bd12c
push 0x5bd128
push 0x5bd124
push 0x5bd120
push str._i__i__i__i__i
push edi
call fcn.0040e618
mov ecx, eax
add esp, 0x1c
cmp ecx, 4
je 0x410576
cmp ecx, 5
jne case.0x410290.64
xor eax, eax
xor edx, edx
inc edx
mov dword [0x5b9ec8], eax
mov eax, dword [0x5bd128]
cmp eax, edx
mov dword [0x5b9ec4], edx
cmovl eax, dword [ebp - 0x230]
mov dword [0x5bd128], eax
mov eax, dword [0x5bd12c]
cmp eax, edx
cmovl eax, dword [ebp - 0x230]
mov dword [0x5bd12c], eax
mov eax, dword [0x5bd130]
test eax, eax
cmovne eax, edx
mov dword [0x5bd130], eax
cmp ecx, 4
jne case.0x410290.64
xor eax, eax
mov dword [0x5bd130], eax
jmp case.0x410290.64
xor eax, eax
push 0x4c
inc eax
push esi
mov dword [0x5b9ec4], eax
call dword [sym.imp.SHLWAPI.dll_StrChrIW]
neg eax
sbb eax, eax
neg eax
add eax, 2
mov dword [0x5b9ec8], eax
jmp 0x410516
xor eax, eax
inc eax
mov dword [0x5b9ec4], eax
jmp 0x4105ea
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
push 0x80
push edi
push 0x5b8300
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
xor eax, eax
inc eax
mov dword [0x5b82fc], eax
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9ecc], eax
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9ed0], eax
jmp case.0x410290.64
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
mov eax, dword [0x5b82f0]
test eax, eax
je 0x41066c
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push edi
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [0x5b82f0], eax
jmp case.0x410290.64
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
push 0x5bcd38
push 0x5bcd3c
push str._i__i
push edi
call fcn.0040e618
xor ecx, ecx
add esp, 0x10
inc ecx
cmp eax, ecx
je 0x4106b8
cmp eax, 2
jne case.0x410290.64
mov dword [0x5b9edc], ecx
jmp case.0x410290.64
mov ebx, dword [sym.imp.SHLWAPI.dll_StrChrW]
push 0x2d
pop eax
push eax
push edi
call ebx
push 1
xor ecx, ecx
test eax, eax
pop eax
push 0x52
mov esi, ecx
push edi
cmovne esi, eax
call ebx
push 1
xor ecx, ecx
test eax, eax
pop eax
push 0x42
mov ebx, ecx
push edi
cmovne ebx, eax
call dword [sym.imp.SHLWAPI.dll_StrChrW]
push 1
xor ecx, ecx
test eax, eax
pop eax
cmovne ecx, eax
mov eax, dword [ebp - 0x220]
push eax
push edi
push eax
mov dword [ebp - 0x23c], ecx
call fcn.0040d815
add esp, 0xc
test eax, eax
je 0x410510
mov eax, dword [0x5b82ec]
test eax, eax
je 0x41072f
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push edi
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [0x5b82ec], eax
xor eax, eax
inc eax
mov dword [0x5b9ee0], eax
test esi, esi
je 0x41074f
push 3
pop eax
mov dword [0x5b9ee0], eax
test ebx, ebx
je 0x41075b
or eax, 4
mov dword [0x5b9ee0], eax
cmp dword [ebp - 0x23c], 0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov esi, dword [ebp - 0x220]
je case.0x410290.64
and eax, 0xfffffffb
or eax, 8
mov dword [0x5b9ee0], eax
jmp case.0x410290.64
lea ecx, [edi + 2]
movzx eax, word [ecx]
push 0x30
pop edx
cmp ax, dx
je 0x4107ae
push 0x2d
pop edx
cmp ax, dx
je 0x4107ae
push ecx
call dword [sym.imp.USER32.dll_CharUpperW]
push 0x4f
pop ecx
cmp word [eax], cx
je 0x4107ae
push 2
pop eax
jmp 0x4107b1
xor eax, eax
inc eax
mov dword [0x5b9ee4], eax
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9eec], eax
jmp case.0x410290.64
push esi
push edi
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je case.0x410290.64
mov eax, dword [0x5b82e8]
test eax, eax
je 0x4107eb
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
push edi
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov dword [0x5b82e8], eax
xor eax, eax
inc eax
mov dword [0x5b9ee8], eax
jmp case.0x410290.64
mov eax, dword [0x5b82e8]
test eax, eax
je 0x41081d
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
mov dword [0x5b82e8], eax
jmp 0x41081f
xor eax, eax
mov dword [0x5bcd34], eax
jmp 0x4107f7
mov eax, dword [0x5b82e8]
test eax, eax
je 0x41083d
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
mov dword [0x5b82e8], eax
mov dword [0x5bcd34], 0x22
jmp 0x4107f7
mov eax, dword [0x5b82e8]
test eax, eax
je 0x410860
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
xor eax, eax
mov dword [0x5b82e8], eax
mov dword [0x5bcd34], 0x23
jmp 0x4107f7
xor eax, eax
inc eax
mov dword [0x5b9ef4], eax
jmp case.0x410290.64
push esi
push edi
push esi
call fcn.0040d815
xor eax, eax
add esp, 0xc
inc eax
mov dword [0x5b9e94], eax
mov dword [ebp - 0x234], eax
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9ef8], eax
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9ed8], eax
jmp case.0x410290.64
mov dword [0x5b9ed4], 5
jmp case.0x410290.64
mov dword [0x5b9ed4], 4
jmp case.0x410290.64
mov dword [0x5b9ed4], 3
jmp case.0x410290.64
mov dword [0x5b9ed4], 2
jmp case.0x410290.64
xor eax, eax
inc eax
mov dword [0x5b9ed4], eax
jmp case.0x410290.64
push dword [ebp - 0x228]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
call esi
lea eax, [eax*2 + 2]
push eax
push 0x40
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
push dword [ebp - 0x224]
mov ebx, eax
call esi
push dword [ebp - 0x228]
mov esi, eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, esi
mov dword [0x5b82e0], eax
mov eax, dword [0x5b82e4]
test eax, eax
je 0x410949
push eax
call dword [sym.imp.KERNEL32.dll_GlobalFree]
push 0x20c
push 0x40
pop eax
push eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, dword [ebp - 0x224]
push 0x104
push esi
push eax
mov dword [0x5b82e4], eax
call dword [sym.imp.SHLWAPI.dll_StrCpyNW]
push dword [0x5b82e4]
call fcn.0040d837
pop ecx
push dword [0x5b82e4]
call dword [sym.imp.SHLWAPI.dll_PathIsRelativeW]
test eax, eax
jne 0x4109f2
push dword [0x5b82e4]
call dword [sym.imp.SHLWAPI.dll_PathIsUNCW]
test eax, eax
jne 0x4109f2
push dword [0x5b82e4]
call dword [sym.imp.SHLWAPI.dll_PathGetDriveNumberW]
cmp eax, 0xffffffff
jne 0x4109f2
push 0x5b9c88
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
push dword [0x5b82e4]
lea eax, [ebp - 0x21c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x21c]
push eax
push dword [0x5b82e4]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x563484
push dword [0x5b82e4]
call dword [sym.imp.SHLWAPI.dll_StrTrimW]
cmp dword [0x5b82dc], 0x20
jge 0x410a42
push esi
push ebx
push esi
call fcn.0040d815
add esp, 0xc
test eax, eax
je 0x410a42
push ebx
call dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
push ebx
call dword [sym.imp.SHLWAPI.dll_StrDupW]
mov ecx, dword [0x5b82dc]
mov dword [ecx*4 + 0x5bd040], eax
inc ecx
mov dword [0x5b82dc], ecx
cmp ecx, 0x20
jl 0x410a0c
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_LocalFree]
call ebx
mov esi, dword [ebp - 0x220]
jmp 0x410a59
mov ebx, dword [sym.imp.KERNEL32.dll_LocalFree]
push edi
call ebx
push esi
call ebx
push dword [ebp - 0x224]
call ebx
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.004afcaa
leave
ret