Function at 0x180003390
Capabilities:
Check os version
Get geographical location
Get system information on windows
Identify system language via api
Print debug messages

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x200
mov rax, qword [0x1800a2de8]
xor rax, rsp
mov qword [rsp + 0x1f0], rax
mov qword [rsp + 0x30], rsp
xor ebx, ebx
mov dword [rsp + 0xd0], ebx
xor edx, edx
mov r8d, 0x118
lea rcx, [rsp + 0xd4]
call fcn.180056c20
mov dword [rsp + 0x40], ebx
xor eax, eax
mov qword [rsp + 0x44], rax
mov qword [rsp + 0x4c], rax
mov qword [rsp + 0x54], rax
mov qword [rsp + 0x5c], rax
mov qword [rsp + 0x64], rax
mov dword [rsp + 0x6c], eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
xor edx, edx
mov r8d, 0x11c
lea rcx, [rsp + 0xd0]
call fcn.180056c20
mov dword [rsp + 0xd0], 0x11c
lea rcx, [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x180003520
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x38], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x180003491
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1800034fc
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x1800034d9
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.MbaeGetOSInfo
mov edx, 0x4eb
mov r8d, 1
lea rcx, str.....mbae_commonMbaeLog.cpp
call fcn.180001b40
jmp 0x1800034f4
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0x98], edi
lea rdx, [0x180003517]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x38]
jmp 0x180003d25
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0xd4]
call fcn.1800030d0
mov eax, dword [rsp + 0xd4]
mov dword [0x1800a6d1c], eax
mov eax, dword [rsp + 0xd8]
mov dword [0x1800a6d18], eax
lea rcx, [0x180087cf8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, rax
lea rdx, str.GetNativeSystemInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [rsp + 0x40]
test rax, rax
jne 0x18000357e
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
jmp 0x180003580
call rax
cmp dword [rsp + 0xe0], 2
jne 0x180003bae
cmp dword [rsp + 0xd4], 5
jb 0x180003bae
lea rcx, [0x180088c80]
lea rax, [0x180088c88]
cmp word [rsp + 0x40], 9
cmove rax, rcx
mov qword [0x1800a4268], rax
lea r8, [rsp + 0xe4]
mov edx, 0x80
lea rcx, [0x1800a6f60]
call fcn.180054b48
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultUILanguage]
movzx ecx, ax
mov r9d, 0x7f
lea r8, [0x1800a7060]
mov edx, 0x1001
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jne 0x1800036cf
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x38], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x180003640
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1800036ab
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x180003688
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.MbaeGetOSInfo
mov edx, 0x502
mov r8d, 1
lea rcx, str.....mbae_commonMbaeLog.cpp
call fcn.180001b40
jmp 0x1800036a3
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0xb4], edi
lea rdx, [0x1800036c6]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x38]
jmp 0x180003d25
mov eax, dword [rsp + 0xd4]
sub eax, 5
je 0x1800037bf
dec eax
je 0x180003738
sub eax, 4
jne 0x1800037da
cmp dword [rsp + 0xd8], eax
jne 0x180003716
lea rcx, str.Windows_10
lea rax, str.Windows_Server_10
cmp byte [rsp + 0x1ea], 1
cmove rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0xbc], ebx
lea rdx, [0x180003731]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x18000377f
dec eax
je 0x18000376f
dec eax
je 0x18000375f
dec eax
jne 0x1800037a0
lea rcx, str.Windows_8.1
lea rax, str.Windows_Server_2012_R2
jmp 0x18000378d
lea rcx, str.Windows_8.0
lea rax, str.Windows_Server_2012
jmp 0x18000378d
lea rcx, str.Windows_7
lea rax, str.Windows_Server_2008_R2
jmp 0x18000378d
lea rcx, str.Windows_Vista
lea rax, str.Windows_Server_2008
cmp byte [rsp + 0x1ea], 1
cmove rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0x78], ebx
lea rdx, [0x1800037b8]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov eax, dword [rsp + 0xd8]
test eax, eax
je 0x180003ae3
dec eax
je 0x180003a9b
dec eax
je 0x1800037e2
nop
xor eax, eax
jmp 0x180003d25
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x180003821
lea rax, str.Windows_Server_2003_R2
mov qword [str.Unknown], rax
mov dword [rsp + 0xa0], ebx
lea rdx, [0x18000381a]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
movzx eax, word [rsp + 0x1e8]
mov ecx, 0x2000
test cx, ax
je 0x180003863
lea rax, str.Windows_Storage_Server_2003
mov qword [str.Unknown], rax
mov dword [rsp + 0x80], ebx
lea rdx, [0x18000385c]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov ecx, 0x8000
test cx, ax
je 0x18000389d
lea rax, str.Windows_Home_Server
mov qword [str.Unknown], rax
mov dword [rsp + 0xc0], ebx
lea rdx, [0x180003896]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
cmp byte [rsp + 0x1ea], 1
jne 0x1800038e8
lea rax, str.Windows_XP_Professional_x64
lea rcx, str.Windows_Server_2003
cmp word [rsp + 0x40], 9
cmovne rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0x88], ebx
lea rdx, [0x1800038e1]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
movzx ecx, word [rsp + 0x40]
cmp ecx, 6
je 0x180003a5b
cmp ecx, 9
je 0x180003a0c
mov ecx, 0x4000
test cx, ax
je 0x180003939
lea rax, str.Windows_Server_2003_Compute_Cluster_Edition
mov qword [str.Unknown], rax
mov dword [rsp + 0xa8], ebx
lea rdx, [0x180003932]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
movzx ecx, byte [rsp + 0x1e8]
test cl, cl
jns 0x180003975
lea rax, str.Windows_Server_2003_Datacenter_Edition
mov qword [str.Unknown], rax
mov dword [rsp + 0x90], ebx
lea rdx, [0x18000396e]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
test cl, 2
je 0x1800039aa
lea rax, str.Windows_Server_2003_Enterprise_Edition
mov qword [str.Unknown], rax
mov dword [rsp + 0xb8], ebx
lea rdx, [0x1800039a3]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov ecx, 0x400
test cx, ax
mov rcx, qword [rsp + 0x30]
je 0x1800039e1
lea rax, str.Windows_Server_2003_Web_Edition
mov qword [str.Unknown], rax
mov dword [rsp + 0x70], ebx
lea rdx, [0x1800039da]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
lea rax, str.Windows_Server_2003_Standard_Edition
mov qword [str.Unknown], rax
mov dword [rsp + 0xb0], ebx
lea rdx, [0x180003a05]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
movzx eax, byte [rsp + 0x1e8]
test al, al
jns 0x180003a21
lea rax, str.Windows_Server_2003_Datacenter_AMDx64_Edition
jmp 0x180003a35
test al, 2
lea rax, str.Windows_Server_2003_Enterprise_AMDx64_Edition
lea rcx, str.Windows_Server_2003_Standard_AMDx64_Edition
cmove rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0x74], ebx
lea rdx, [0x180003a54]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
test byte [rsp + 0x1e8], 0x80
lea rcx, str.Windows_Server_2003_Datacenter_Edition_for_Itanium_based_Systems
lea rax, str.Windows_Server_2003_Enterprise_Edition_for_Itanium_based_Systems
cmovne rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0x7c], ebx
lea rdx, [0x180003a94]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov eax, 0x200
test word [rsp + 0x1e8], ax
lea rax, str.Windows_XP_Home_Edition
lea rcx, str.Windows_XP_Professional_Edition
cmove rax, rcx
mov qword [str.Unknown], rax
mov dword [rsp + 0x84], ebx
lea rdx, [0x180003adc]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
mov rcx, qword [rsp + 0x30]
cmp byte [rsp + 0x1ea], 1
jne 0x180003b1d
lea rax, str.Windows_2000_ProfessionaL
mov qword [str.Unknown], rax
mov dword [rsp + 0x8c], ebx
lea rdx, [0x180003b16]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
movzx eax, byte [rsp + 0x1e8]
test al, al
jns 0x180003b54
lea rax, str.Windows_2000_DataCenter_Server
mov qword [str.Unknown], rax
mov dword [rsp + 0x94], ebx
lea rdx, [0x180003b4d]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
test al, 2
je 0x180003b83
lea rax, str.Windows_2000_Advanced_Server
mov qword [str.Unknown], rax
mov dword [rsp + 0x9c], ebx
lea rdx, [0x180003b7c]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
lea rax, str.Windows_2000_Server
mov qword [str.Unknown], rax
mov dword [rsp + 0xa4], ebx
lea rdx, [0x180003ba7]
call fcn.180057580
nop
nop
nop
xor eax, eax
jmp 0x180003d25
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea edi, [rax + 0x1e]
mov dword [rsp + 0x38], edi
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [rax + 0x1e]
mov ecx, 0x1000a
call fcn.180053ad4
mov rbx, rax
test rax, rax
jne 0x180003bf1
lea rcx, str.Memory_allocation_error_in_log_file_n
call fcn.180053f50
lea rcx, str.Memory_allocation_error_in_log_file_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x180003c5c
lea r8, [0x180088a64]
mov edx, 0xffff
mov rcx, rax
call fcn.180053a70
test eax, eax
jle 0x180003c39
mov byte [rbx + 0xffff], 0
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rbx
lea r9, str.MbaeGetOSInfo
mov edx, 0x4fa
mov r8d, 1
lea rcx, str.....mbae_commonMbaeLog.cpp
call fcn.180001b40
jmp 0x180003c54
mov edx, esi
lea rcx, str.Error__d_in_swprintf_s_n
call fcn.180053f50
lea rcx, str.Error_in_swprintf_s_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, rbx
call fcn.180053a94
mov dword [rsp + 0xac], edi
lea rdx, [0x180003c77]
mov rcx, qword [rsp + 0x30]
call fcn.180057580
nop
nop
nop
mov eax, dword [rsp + 0x38]
jmp 0x180003d25
mov rcx, qword [rsp + 0x1f0]
xor rcx, rsp
call fcn.180052be0
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret