Function at 0x1400cd9f0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp qword [0x140378610], 0
mov rbx, rdx
mov rdi, rcx
jne 0x1400cda3c
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [0x140378610], rax
test rax, rax
je 0x1400cda3c
lea rdx, str.GetUserPreferredUILanguages
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140378608], rax
jmp 0x1400cda43
mov rax, qword [0x140378608]
mov rdx, rbx
mov rcx, rdi
test rax, rax
jne 0x1400cda5d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x1400cdbd0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x1400cda70
push rbp
push r14
push r15
sub rsp, 0x40
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x30], rbx
mov qword [rbp + 0x38], rsi
mov qword [rbp + 0x40], rdi
mov rax, qword [0x1403749c0]
xor rax, rbp
mov qword [rbp + 8], rax
mov rax, qword [0x140378608]
lea r9, [rbp]
xor edi, edi
mov rbx, rdx
mov r15, rcx
mov dword [rbp + 4], edi
xor r8d, r8d
mov dword [rbp], edi
lea rdx, [rbp + 4]
lea ecx, [rdi + 8]
call qword [case.0x1401289aa.0]
mov r14d, dword [rbp]
add r14, r14
cmp r14, 0x80
jae 0x1400cdaf8
lea rax, [r14 + 0xf]
cmp rax, r14
ja 0x1400cdae5
movabs rax, 0xffffffffffffff0
and rax, 0xfffffffffffffff0
call fcn.140159ba0
sub rsp, rax
lea rsi, [rsp + 0x30]
jmp 0x1400cdb03
mov rcx, r14
call fcn.140084170
mov rsi, rax
test rsi, rsi
jne 0x1400cdb14
xor ecx, ecx
call fcn.140052490
jmp 0x1400cdba0
mov rax, qword [0x140378608]
lea r9, [rbp]
mov r8, rsi
lea rdx, [rbp + 4]
mov ecx, 8
call qword [case.0x1401289aa.0]
test eax, eax
jne 0x1400cdb42
mov rdx, rbx
mov rcx, r15
call 0x1400cdbd0
jmp 0x1400cdb8f
mov ecx, dword [rbp]
dec ecx
mov eax, ecx
cmp rbx, rax
cmovae ebx, ecx
mov ecx, edi
test ebx, ebx
je 0x1400cdb88
mov r9, r15
mov r8, rsi
mov r10d, 0x5f
movzx edx, byte [r8]
test dl, dl
jne 0x1400cdb6f
mov edi, ecx
mov al, 0x2c
jmp 0x1400cdb78
cmp dl, 0x2d
mov eax, edx
cmove eax, r10d
mov byte [r9], al
inc ecx
inc r9
add r8, 2
cmp ecx, ebx
jb 0x1400cdb61
mov eax, edi
mov byte [rax + r15], 0
cmp r14, 0x80
jb 0x1400cdba0
mov rcx, rsi
call fcn.140084140
mov rcx, qword [rbp + 8]
xor rcx, rbp
call fcn.140158fa0
mov rbx, qword [rbp + 0x30]
mov rsi, qword [rbp + 0x38]
mov rdi, qword [rbp + 0x40]
lea rsp, [rbp + 0x10]
pop r15
pop r14
pop rbp
ret
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x1403749c0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r9d, reloc.WS2_32.dll_recv
lea r8, [rsp + 0x40]
mov rsi, rdx
mov rdi, rcx
mov ecx, 0x400
lea edx, [r9 + 0x49]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov r9d, reloc.WS2_32.dll_recv
lea r8, [rsp + 0x30]
mov ecx, 0x400
mov ebx, eax
lea edx, [r9 + 0x4a]
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
mov ecx, eax
test ebx, ebx
jne 0x1400cdc3e
lea rcx, str.Couldnt_obtain_language_info
call fcn.140052570
jmp 0x1400cdc7c
test ecx, ecx
lea r8, [0x140346534]
lea rdx, [0x140347110]
mov rcx, rdi
lea rax, [rsp + 0x30]
cmove rax, r8
lea r9, [rsp + 0x40]
cmovne r8, rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r8
mov rdx, rsi
lea r8, [0x140240608]
call fcn.140053330
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140158fa0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret