Function at 0x4c1120
Capabilities:
Get geographical location
Identify system language via api

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x8c]
push ebx
sub esp, 0x120
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x10d
mov dword [esp + 8], 0x409
mov dword [esp + 4], str.wrong_LCID_calculated____ld_n
mov dword [esp], 1
call fcn.004b46e0
lea eax, [ebp - 0x110]
mov esi, dword [sym.imp.kernel32.dll_GetLocaleInfoA]
mov dword [esp + 0xc], 4
mov dword [esp + 8], eax
mov dword [esp + 4], 0x20000001
mov dword [esp], 0x409
call esi
sub esp, 0x10
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x110
mov dword [esp + 8], ebx
mov dword [esp], ebx
lea ebx, [ebp - 0x10c]
mov dword [esp + 4], 0x5d927a
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x111
mov eax, dword [ebp - 0x110]
mov dword [esp + 4], str.got_0x_08lx_n
cmp eax, 0x409
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
mov ecx, 0x20
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x8c]
mov dword [esp], 0x409
mov edi, ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 4], 2
call esi
mov ecx, 0x20
mov dword [ebp - 0x114], eax
sub esp, 0x10
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 9
call esi
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x11b
xor eax, eax
cmp edx, edi
je 0x4c1860
lea ecx, [ebp - 0x8c]
mov dword [esp + 8], edi
lea edi, [ebp - 0x8c]
mov dword [esp + 0x14], ecx
mov dword [esp], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
call fcn.004b46e0
xor eax, eax
mov ecx, 0x20
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x8c]
mov dword [esp], 0x401
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
call esi
sub esp, 0x10
test eax, eax
mov dword [ebp - 0x114], eax
je 0x4c17e0
mov eax, dword fs:[0x18]
mov ecx, 0x20
mov dword [eax + 0x34], 0xdeadbeef
mov edi, ebx
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 1
call esi
sub esp, 0x10
mov edi, eax
mov eax, 0x125
call fcn.004b3be0
mov edx, dword [ebp - 0x114]
xor eax, eax
cmp edx, edi
je 0x4c1958
lea ecx, [ebp - 0x8c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
mov ecx, 0x20
lea edi, [ebp - 0x8c]
rep stosd dword es:[edi], eax
lea ecx, [ebp - 0x8c]
mov dword [esp], 0x407
mov edi, ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 4], 2
call esi
mov ecx, 0x20
mov dword [ebp - 0x114], eax
sub esp, 0x10
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0xdeadbeef
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 7
call esi
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x132
xor eax, eax
cmp edx, edi
je 0x4c1928
lea ecx, [ebp - 0x8c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
call fcn.004b46e0
call dword [sym.imp.kernel32.dll_GetUserDefaultLCID]
lea ecx, [ebp - 0x8c]
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov dword [esp], eax
call esi
sub esp, 0x10
mov edi, eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 0
call esi
sub esp, 0x10
mov dword [ebp - 0x114], eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x138
xor eax, eax
cmp edi, edx
je 0x4c18f8
lea ecx, [ebp - 0x8c]
mov dword [esp + 8], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 0xc00
call esi
sub esp, 0x10
mov dword [ebp - 0x114], eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x13b
xor eax, eax
cmp edi, edx
je 0x4c18c8
lea ecx, [ebp - 0x8c]
mov dword [esp + 8], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 0x1000
call esi
sub esp, 0x10
mov dword [ebp - 0x114], eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x13e
cmp edi, edx
je 0x4c1890
mov eax, edx
or eax, dword [0x8f0770]
sete al
movzx eax, al
lea ecx, [ebp - 0x8c]
mov dword [esp + 8], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
call fcn.004b46e0
call dword [sym.imp.kernel32.dll_GetUserDefaultUILanguage]
lea ecx, [ebp - 0x8c]
mov dword [esp + 0xc], pe_nt_image_headers32
movzx eax, ax
mov dword [esp + 8], ecx
mov dword [esp + 4], 2
mov dword [esp], eax
call esi
sub esp, 0x10
mov edi, eax
mov dword [esp + 0xc], pe_nt_image_headers32
mov dword [esp + 8], ebx
mov dword [esp + 4], 2
mov dword [esp], 0x1400
call esi
sub esp, 0x10
test eax, eax
jne 0x4c1810
mov eax, dword fs:[0x18]
mov ecx, 0x20
mov dword [eax + 0x34], 0xdeadbeef
mov edi, ebx
xor eax, eax
rep stosd dword es:[edi], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x8000002a
mov dword [esp], 0x409
call esi
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x14b
xor eax, eax
cmp edi, 7
jne 0x4c1656
xor eax, eax
cmp byte [ebp - 0x10c], 0
sete al
mov dword [esp + 8], edi
mov edi, ebx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_len7__got__d_n
call fcn.004b46e0
xor eax, eax
mov ecx, 0x20
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
rep stosd dword es:[edi], eax
mov dword [ebp - 0x114], edx
mov dword [esp + 0xc], 3
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x8000002a
mov dword [esp], 0x409
call esi
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x150
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x4c16d4
xor eax, eax
cmp ecx, 0x7a
sete al
mov dword [esp + 8], ecx
mov edi, ebx
mov dword [esp], eax
mov dword [esp + 4], str.Expected_ERROR_INSUFFICIENT_BUFFER__got__ld_n
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x152
xor eax, eax
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Expected_Mon__got__s_n
cmp dword [ebp - 0x10c], 0x6e6f4d
sete al
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
mov ecx, 0x20
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
rep stosd dword es:[edi], eax
mov dword [ebp - 0x114], edx
mov dword [esp + 0xc], 0xa
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x8000002a
mov dword [esp], 0x409
call esi
sub esp, 0x10
mov esi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x114]
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x157
mov eax, dword [edx + 0x34]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
xor eax, eax
cmp esi, 7
sete al
mov dword [esp + 4], str.Expected_ret__7__got__d__error__ld_n
mov dword [esp], eax
call fcn.004b46e0
call fcn.0057d110
mov dword [eax], 0x5d8897
mov dword [eax + 4], 0x158
cmp dword [ebp - 0x10c], 0x646e6f4d
je 0x4c1800
mov eax, 1
xor eax, 1
mov dword [esp + 8], ebx
mov dword [esp + 4], str.Expected_Monday__got__s_n
mov dword [esp], eax
call fcn.004b46e0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x12a
call fcn.004b3be0
mov dword [esp], str.LANG_ARABIC_not_installed_n
call fcn.004b46b0
jmp 0x4c1365
xor eax, eax
cmp dword [ebp - 0x109], 0x796164
jne 0x4c17b7
jmp 0x4c17bc
mov dword [ebp - 0x114], eax
mov eax, 0x142
call fcn.004b3be0
mov edx, dword [ebp - 0x114]
xor eax, eax
cmp edi, edx
je 0x4c1988
lea ecx, [ebp - 0x8c]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], str.got__d_with__s__expected__d_with__s__n
mov dword [esp], eax
call fcn.004b46e0
jmp 0x4c15f7
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c1282
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x114], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
jne 0x4c156e
mov eax, 1
jmp 0x4c157c
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c1502
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c1494
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c13fc
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c133f
lea eax, [ebp - 0x8c]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_lstrcmpA]
mov edx, dword [ebp - 0x114]
sub esp, 8
test eax, eax
sete al
movzx eax, al
jmp 0x4c1830