Function at 0x100003330
Capabilities:
Accept command line arguments
Get common file path
Get geographical location
Set current directory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x460
mov rax, qword [0x100005120]
xor rax, rsp
mov qword [rsp + 0x450], rax
xor ebx, ebx
xor r9d, r9d
xor r8d, r8d
lea r13d, [rbx + 1]
xor ecx, ecx
mov rbp, rbx
mov edx, r13d
mov r14, rbx
mov r12b, bl
call qword [sym.imp.KERNEL32.dll_HeapSetInformation]
xor r8d, r8d
xor edx, edx
mov ecx, 0x100
call qword [sym.imp.KERNEL32.dll_SetThreadPreferredUILanguages]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetThreadUILanguage]
lea esi, [rbx + 8]
mov edi, 0x400
lea r8, [0x1000081b0]
lea edx, [rbx + 0xf]
mov ecx, edi
mov r9d, esi
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp eax, ebx
jne 0x1000033d0
lea r8, [0x1000012a0]
lea rcx, [0x1000081b0]
mov rdx, rsi
call fcn.100003cfe
lea r8, [0x100006180]
mov r9d, esi
mov edx, 0xe
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp eax, ebx
jne 0x100003401
lea r8, [0x1000012a4]
lea rcx, [0x100006180]
mov rdx, rsi
call fcn.100003cfe
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
xor ecx, ecx
mov qword [0x1000091e0], rax
call fcn.1000013d8
mov ecx, 0xfffffff5
mov dword [0x1000081c0], eax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ecx, r13d
mov qword [0x1000091f0], rax
call fcn.1000013d8
mov ecx, 0xfffffff4
mov dword [0x1000081a0], eax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ecx, 2
mov qword [0x1000091e8], rax
call fcn.1000013d8
mov word [rsp + 0x30], bx
mov dword [0x100006190], eax
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea rdx, [rsp + 0x28]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov r15, rax
cmp rax, rbx
jne 0x10000349a
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
mov edx, eax
call fcn.100001538
mov eax, r13d
jmp 0x100003986
mov esi, r13d
lea rax, [fcn.100001d74]
cmp dword [rsp + 0x28], r13d
jbe 0x10000363a
lea rdi, [r15 + 8]
mov rcx, qword [rdi]
cmp word [rcx], 0x2f
jne 0x100003621
lea rdx, [0x10000135c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x1000034f5
lea rax, [fcn.10000260c]
cmp rbp, rbx
je 0x1000034e6
cmp rbp, rax
jne 0x1000036e0
mov rbp, rax
lea r14, [0x100002b08]
jmp 0x100003618
mov rcx, qword [rdi]
lea rdx, [0x100001364]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x100003531
lea rax, [fcn.100001d74]
cmp rbp, rbx
je 0x10000351e
cmp rbp, rax
jne 0x1000036e0
lea rbp, [fcn.100002df4]
lea r14, [0x1000032a8]
jmp 0x100003624
mov rcx, qword [rdi]
lea rdx, [0x10000136c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x100003551
mov byte [0x1000056f3], r13b
jmp 0x100003618
mov rcx, qword [rdi]
lea rdx, [0x100001374]
mov r8d, 2
call qword [sym.imp.msvcrt.dll__wcsnicmp]
mov rcx, qword [rdi]
cmp eax, ebx
jne 0x1000035c2
mov edx, 0x3a
mov byte [0x1000056f0], r13b
call qword [sym.imp.msvcrt.dll_wcschr]
cmp rax, rbx
je 0x10000359c
lea r8, [rax + 2]
lea rcx, [0x100005740]
mov edx, 0x104
call fcn.100003cfe
jmp 0x100003618
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 2
jne 0x1000036e0
lea rdx, [0x100005740]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
jmp 0x100003618
lea rdx, [0x10000137c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x1000035dc
mov byte [0x1000056f1], r13b
jmp 0x100003618
mov rcx, qword [rdi]
lea rdx, [0x100001384]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x1000035f9
mov byte [0x1000056f2], r13b
jmp 0x100003618
mov rcx, qword [rdi]
lea rdx, [0x10000138c]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
jne 0x1000036ef
mov byte [0x1000056f4], r13b
lea rax, [fcn.100001d74]
jmp 0x100003624
mov r12b, r13b
add esi, r13d
add rdi, 8
cmp esi, dword [rsp + 0x28]
jb 0x1000034b3
cmp rbp, rbx
jne 0x100003644
mov rbp, rax
lea r14, [0x100002060]
cmp byte [0x1000056f0], bl
jne 0x100003718
lea rdx, [0x100005740]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
mov edi, ebx
cmp r12b, bl
jne 0x10000376f
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
lea rcx, [0x10000131c]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp eax, ebx
je 0x100003760
cmp eax, 0x104
jae 0x100003760
mov r8, qword [rsp + 0x20]
lea rcx, [rsp + 0x240]
mov edx, 0x104
call fcn.100003cfe
mov rax, qword [rsp + 0x20]
mov word [rax], bx
lea rax, [fcn.100001d74]
cmp rbp, rax
je 0x10000373f
lea rdx, [0x10000139c]
lea rcx, [rsp + 0x30]
call rbp
mov esi, r13d
cmp al, bl
cmove edi, r13d
jmp 0x100003742
xor edx, edx
lea ecx, [rdx + 0x32]
call fcn.100001458
jmp 0x100003492
xor edx, edx
lea ecx, [rdx + 0x32]
call fcn.100001458
mov ecx, esi
lea rdx, [0x100001394]
mov rcx, qword [r15 + rcx*8]
call qword [sym.imp.msvcrt.dll__wcsicmp]
cmp eax, ebx
setne bl
mov eax, ebx
jmp 0x100003986
lea rcx, [0x100005740]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
cmp eax, ebx
jne 0x100003662
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x100005740]
jmp 0x10000348b
mov esi, r13d
lea rdx, [rsp + 0x240]
lea rcx, [rsp + 0x30]
call rbp
cmp al, bl
jne 0x100003974
mov edi, esi
jmp 0x100003974
mov ecx, 0x13
call fcn.100001458
jmp 0x100003492
mov ecx, dword [rsp + 0x28]
mov r12d, r13d
cmp ecx, r13d
jbe 0x100003974
lea rsi, [r15 + 8]
lea r13, [0x10000131c]
mov rax, qword [rsi]
cmp word [rax], 0x2f
je 0x10000393c
lea rcx, [0x100005740]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov rcx, qword [rsi]
mov eax, 0x2e
cmp ax, word [rcx]
jne 0x1000037f7
cmp bx, word [rcx + 2]
jne 0x1000037f7
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
mov edx, 0x104
mov rcx, r13
mov qword [rsi], r13
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp eax, ebx
je 0x10000394d
cmp eax, 0x104
jae 0x10000394d
mov rax, qword [rsp + 0x20]
mov word [rax], bx
mov qword [rsp + 0x20], rbx
jmp 0x100003881
lea r9, [rsp + 0x20]
lea r8, [rsp + 0x30]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
cmp eax, ebx
je 0x10000394d
cmp eax, 0x104
jae 0x10000394d
mov rcx, qword [rsi]
mov edx, 0x3a
call qword [sym.imp.msvcrt.dll_wcschr]
cmp rax, rbx
je 0x100003843
sub rax, qword [rsi]
and rax, 0xfffffffffffffffe
cmp rax, 2
jne 0x10000395e
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, ebx
jle 0x100003881
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov edx, 0x2e
movsxd rcx, eax
mov rax, qword [rsi]
cmp dx, word [rax + rcx*2 - 2]
jne 0x100003881
lea r8, [0x1000012a4]
lea rcx, [rsp + 0x30]
mov edx, 0x104
call fcn.100003cf2
mov eax, 0x5c
cmp ax, word [rsp + 0x30]
jne 0x1000038ef
cmp ax, word [rsp + 0x32]
jne 0x1000038ef
lea rcx, [rsp + 0x34]
mov edx, eax
call qword [sym.imp.msvcrt.dll_wcschr]
cmp rax, rbx
je 0x1000038ef
lea rcx, [rax + 2]
mov edx, 0x5c
call qword [sym.imp.msvcrt.dll_wcschr]
cmp rax, rbx
jne 0x1000038ef
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd rcx, eax
mov eax, 0x5c
cmp ax, word [rsp + rcx*2 + 0x30]
je 0x1000038ef
lea r8, [0x100001320]
lea rcx, [rsp + 0x30]
mov edx, 0x104
call fcn.100003cf2
mov qword [rsp + 0x20], rbx
mov r8, qword [rsp + 0x20]
cmp r8, rbx
je 0x100003915
lea rcx, [rsp + 0x240]
mov edx, 0x104
call fcn.100003cfe
mov rax, qword [rsp + 0x20]
mov word [rax], bx
jmp 0x10000391d
mov word [rsp + 0x240], bx
lea rdx, [rsp + 0x240]
lea rcx, [rsp + 0x30]
call rbp
cmp al, bl
jne 0x100003938
cmp byte [0x1000056f1], bl
je 0x10000396f
mov ecx, dword [rsp + 0x28]
inc r12d
add rsi, 8
cmp r12d, ecx
jae 0x100003974
jmp 0x10000378a
mov ecx, 0x13
call fcn.100001458
mov eax, 1
jmp 0x100003986
mov edx, r12d
mov ecx, 0x19
mov rdx, qword [r15 + rdx*8]
call fcn.100001458
mov edi, 1
lea rcx, [0x100005740]
call qword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
call r14
mov eax, edi
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.100003cc0
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret