Function at 0x4d83c0
Capabilities:
Delete registry value
Get geographical location
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x184
mov edi, dword [0x7af6f0]
test edi, edi
je 0x4d9920
mov esi, dword [0x7af6f4]
test esi, esi
je 0x4d9920
lea eax, [ebp - 0x150]
mov dword [esp + 0xc], 0x2001f
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Control_PanelInternationalGeo
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyExA]
sub esp, 0x14
mov ebx, eax
mov eax, 0x2022
call fcn.004b3be0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x5de434
lea ebx, [ebp - 0x10c]
mov dword [esp], eax
call fcn.004b46e0
lea eax, [ebp - 0x158]
mov dword [ebp - 0x158], 0x40
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x154]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov dword [ebp - 0x168], eax
call eax
mov dword [ebp - 0x16c], eax
sub esp, 0x18
xor eax, eax
movzx edx, word [eax + 0x5de45c]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x4d84a0
cmp word [ebp - 0x10c], 0
je 0x4d9b20
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4d84c8
sub eax, ebx
add eax, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [sym.imp.advapi32.dll_RegSetValueExW]
mov dword [ebp - 0x164], eax
call eax
mov dword [ebp - 0x158], 0x40
sub esp, 0x18
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x7af6f4]
sub esp, 8
cmp eax, 1
je 0x4d9868
mov dword [ebp - 0x158], 0x40
lea eax, [ebp - 0x158]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x8c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x154]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Nation
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov edi, dword [ebp - 0x168]
call edi
mov dword [ebp - 0x158], 0x40
mov dword [ebp - 0x174], eax
sub esp, 0x18
lea eax, [ebp - 0x158]
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x4c]
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x154]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Region
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
call edi
sub esp, 0x18
mov dword [ebp - 0x178], eax
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [0x7af6f4]
mov esi, eax
sub esp, 8
mov eax, 0x2044
call fcn.004b3be0
lea ecx, [esi - 3]
mov edx, dword [edi + 0x34]
xor eax, eax
cmp ecx, 1
ja 0x4d861f
xor eax, eax
cmp edx, 0xdeadbeef
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x15c], edx
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x2049
call fcn.004b3be0
mov edx, dword [ebp - 0x15c]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp edi, 2
jle 0x4d8686
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x15c], edx
mov dword [esp + 4], 2
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x204d
call fcn.004b3be0
mov edx, dword [ebp - 0x15c]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x4d86e9
xor eax, eax
cmp ecx, 0x7a
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x15c], edx
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x2051
call fcn.004b3be0
mov edx, dword [ebp - 0x15c]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x4d8750
xor eax, eax
cmp ecx, 0x57
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x15c], edx
mov dword [esp + 4], esi
mov dword [esp], 0
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x2055
call fcn.004b3be0
mov edx, dword [ebp - 0x15c]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x4d87b3
xor eax, eax
cmp ecx, 0x57
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x15c], edx
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x2059
call fcn.004b3be0
mov edx, dword [ebp - 0x15c]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, edi
jne 0x4d8815
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x205a
call fcn.004b3be0
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b3ad0
mov dword [esp + 4], 0x5de45c
mov esi, eax
mov eax, dword [sym.imp.kernel32.dll_lstrcmpW]
mov dword [esp], ebx
mov dword [ebp - 0x15c], eax
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.004b46e0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp], 0
call dword [0x7af6f0]
sub esp, 4
mov esi, eax
mov eax, 0x205e
call fcn.004b3be0
mov edx, dword [edi + 0x34]
xor eax, eax
test esi, esi
jne 0x4d88b7
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 8], esi
lea esi, [ebp - 0xcc]
mov dword [esp], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
call fcn.004b46e0
xor eax, eax
lea esi, [esi]
nop
movzx edx, word [eax + 0x5de45c]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4d88e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x160], edx
mov dword [esp], esi
call dword [0x7af6f0]
sub esp, 4
mov edi, eax
mov eax, 0x2063
call fcn.004b3be0
mov edx, dword [ebp - 0x160]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
jne 0x4d8936
xor eax, eax
cmp ecx, 0x57
sete al
mov dword [esp], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
call fcn.004b46e0
xor eax, eax
movzx edx, word [eax + 0x5de526]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4d8950
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x160], edx
mov dword [esp], esi
call dword [0x7af6f0]
sub esp, 4
mov edi, eax
mov eax, 0x2068
call fcn.004b3be0
mov edx, dword [ebp - 0x160]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
je 0x4d89b8
mov eax, 1
cmp ecx, 0xdeadbeef
je 0x4d89b8
mov eax, dword [0x8f0770]
or eax, ecx
sete al
movzx eax, al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x160], edx
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x206d
call fcn.004b3be0
mov edx, dword [ebp - 0x160]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp edi, 4
jne 0x4d8a1f
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x206e
call fcn.004b3be0
mov eax, ebx
shr eax, 0x10
mov dword [ebp - 0x160], eax
je 0x4d9960
mov dword [esp + 4], 0xffffffff
mov edi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d8a7d
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov edi, eax
mov dword [esp + 4], 0x5de52c
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [sym.imp.kernel32.dll_GetUserGeoID]
mov dword [esp], 0xe
mov dword [ebp - 0x170], eax
call eax
sub esp, 4
mov edi, eax
mov eax, 0x2070
call fcn.004b3be0
xor eax, eax
cmp edi, 0x989e
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_unexpected_geoid__lu._n
mov dword [esp], eax
call fcn.004b46e0
lea eax, [ebp - 0x158]
mov dword [ebp - 0x158], 0x40
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x154]
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [ebp - 0x168]
call eax
sub esp, 0x18
mov edi, eax
mov eax, 0x2073
call fcn.004b3be0
xor eax, eax
test edi, edi
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov eax, 0x2074
call fcn.004b3be0
mov eax, dword [ebp - 0x154]
mov dword [esp + 4], str.Got_unexpected_type__lx._n
cmp eax, 1
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.004b46e0
mov eax, 0x2075
call fcn.004b3be0
mov ecx, dword [ebp - 0x160]
test ecx, ecx
je 0x4d9a70
mov dword [esp + 4], 0xffffffff
mov edi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d8bce
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov edi, eax
mov dword [esp + 4], 0x5de52c
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x5de56a]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4d8c08
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x168], edx
mov dword [esp], esi
call dword [0x7af6f0]
sub esp, 4
mov edi, eax
mov eax, 0x207a
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
je 0x4d8c70
mov eax, 1
cmp ecx, 0xdeadbeef
je 0x4d8c70
mov eax, dword [0x8f0770]
or eax, ecx
sete al
movzx eax, al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x207d
call fcn.004b3be0
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
cmp edi, 3
je 0x4d99a0
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x207f
call fcn.004b3be0
mov edx, dword [ebp - 0x160]
test edx, edx
je 0x4d9980
mov dword [esp + 4], 0xffffffff
mov edi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d8d18
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov edi, eax
mov dword [esp + 4], 0x5dd7b0
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10
mov eax, dword [ebp - 0x170]
call eax
sub esp, 4
mov edi, eax
mov eax, 0x2081
call fcn.004b3be0
xor eax, eax
cmp edi, 0xb
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_unexpected_geoid__lu._n
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movzx edx, word [eax + 0x5de570]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4d8d90
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x168], edx
mov dword [esp], esi
call dword [0x7af6f0]
sub esp, 4
mov edi, eax
mov eax, 0x2086
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
test edi, edi
je 0x4d8df9
mov eax, 1
cmp ecx, 0xdeadbeef
je 0x4d8df9
mov eax, ecx
or eax, dword [0x8f0770]
sete al
movzx eax, al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov edi, eax
mov eax, 0x2089
call fcn.004b3be0
xor eax, eax
mov edx, dword fs:[0x18]
mov ecx, dword [edx + 0x34]
cmp edi, 4
je 0x4d9a48
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], edi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x208b
call fcn.004b3be0
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x4d9a28
mov dword [esp + 4], 0xffffffff
mov edi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d8ea1
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov edi, eax
mov dword [esp + 4], 0x5de570
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], edi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x10
mov eax, dword [ebp - 0x170]
call eax
sub esp, 4
mov edi, eax
mov eax, 0x208d
call fcn.004b3be0
xor eax, eax
cmp edi, 0xb
mov dword [esp + 8], edi
sete al
mov dword [esp + 4], str.Got_unexpected_geoid__lu._n
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
nop
movzx edx, word [eax + 0x5de578]
mov word [esi + eax], dx
add eax, 2
test dx, dx
jne 0x4d8f10
mov edi, dword fs:[0x18]
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp], esi
call dword [0x7af6f0]
sub esp, 4
mov esi, eax
mov eax, 0x2092
call fcn.004b3be0
mov edx, dword [edi + 0x34]
xor eax, eax
test esi, esi
jne 0x4d8f5a
xor eax, eax
cmp edx, 0x57
sete al
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x52fa
mov edi, dword [sym.imp.kernel32.dll_SetUserGeoID]
call edi
sub esp, 4
mov esi, eax
mov eax, 0x2095
call fcn.004b3be0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x168], edx
mov dword [esp + 8], esi
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
call fcn.004b46e0
mov edx, dword [ebp - 0x168]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x2098
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, 3
jne 0x4d9000
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x2099
call fcn.004b3be0
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b3ad0
mov dword [esp + 4], 0x5de582
mov esi, eax
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0xa5f3
call edi
sub esp, 4
mov esi, eax
mov eax, 0x209c
call fcn.004b3be0
mov edx, dword fs:[0x18]
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x168], edx
mov dword [esp + 8], esi
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
call fcn.004b46e0
mov edx, dword [ebp - 0x168]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x209f
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, 4
jne 0x4d90ea
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x20a0
call fcn.004b3be0
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x4d9a08
mov dword [esp + 4], 0xffffffff
mov esi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d9145
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov esi, eax
mov dword [esp + 4], 0x5de588
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp], 0x14d
call edi
sub esp, 4
mov esi, eax
mov eax, 0x20a3
call fcn.004b3be0
mov edi, dword fs:[0x18]
mov eax, dword [edi + 0x34]
mov dword [esp + 8], esi
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], str.Got_unexpected_bret__x__GetLastError____lu._n
call fcn.004b46e0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x20a6
call fcn.004b3be0
mov edx, dword [edi + 0x34]
xor eax, eax
cmp esi, 3
jne 0x4d91ed
xor eax, eax
cmp edx, 0xdeadbeef
sete al
mov dword [esp + 0xc], edx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x20a7
call fcn.004b3be0
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x4d99c8
mov dword [esp + 4], 0xffffffff
mov esi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d9248
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov esi, eax
mov dword [esp + 4], 0x5de590
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov edi, dword [sym.imp.advapi32.dll_RegDeleteValueW]
mov dword [esp], eax
call edi
sub esp, 8
mov dword [esp + 4], str.Region
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
call edi
xor eax, eax
sub esp, 8
nop
movzx edx, word [eax + 0x5de596]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x4d92b0
cmp word [ebp - 0x10c], 0
je 0x4d9b2a
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4d92d8
sub eax, ebx
add eax, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Nation
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov esi, eax
mov eax, 0x20ad
call fcn.004b3be0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x168], edx
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x20b0
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, 3
jne 0x4d9390
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x20b1
call fcn.004b3be0
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x4d9a90
mov dword [esp + 4], 0xffffffff
mov esi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d93eb
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov esi, eax
mov dword [esp + 4], 0x5de59e
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
xor eax, eax
nop
movzx edx, word [eax + 0x5de5a4]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x4d9420
cmp word [ebp - 0x10c], 0
je 0x4d9b34
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4d9448
sub eax, ebx
add eax, 2
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Region
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov esi, eax
mov eax, 0x20b5
call fcn.004b3be0
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x168], edx
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x20b8
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, 3
jne 0x4d9500
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x20b9
call fcn.004b3be0
mov eax, dword [ebp - 0x160]
test eax, eax
je 0x4d9ab0
mov dword [esp + 4], 0xffffffff
mov esi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d955b
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov esi, eax
mov dword [esp + 4], 0x5de59e
mov dword [esp], ebx
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov dword [esp + 4], str.Nation
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
call edi
sub esp, 8
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x168], edx
mov dword [esp + 4], 0x20
mov dword [esp], ebx
call dword [0x7af6f4]
sub esp, 8
mov esi, eax
mov eax, 0x20be
call fcn.004b3be0
mov edx, dword [ebp - 0x168]
xor eax, eax
mov ecx, dword [edx + 0x34]
cmp esi, 4
jne 0x4d95f2
xor eax, eax
cmp ecx, 0xdeadbeef
sete al
mov dword [esp + 0xc], ecx
mov dword [esp + 8], esi
mov dword [esp], eax
mov dword [esp + 4], str.Got_unexpected_ret__u__GetLastError____lu._n
call fcn.004b46e0
mov eax, 0x20bf
call fcn.004b3be0
mov esi, dword [ebp - 0x160]
test esi, esi
je 0x4d99e8
mov dword [esp + 4], 0xffffffff
mov esi, 0x5d886c
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
sub esp, 8
test eax, eax
jne 0x4d964d
mov edx, 0xffffffff
mov eax, ebx
call fcn.004b38c0
mov esi, eax
mov dword [esp], ebx
mov dword [esp + 4], 0x5de52c
mov eax, dword [ebp - 0x15c]
call eax
sub esp, 8
test eax, eax
sete al
mov dword [esp + 8], esi
movzx eax, al
mov dword [esp + 4], 0x5de4dc
mov dword [esp], eax
call fcn.004b46e0
mov ebx, dword [ebp - 0x16c]
test ebx, ebx
jne 0x4d9b00
cmp word [ebp - 0x14c], 0
je 0x4d9b48
lea eax, [ebp - 0x14c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4d96a8
lea ecx, [ebp - 0x14c]
sub eax, ecx
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x20c5
call fcn.004b3be0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov ecx, dword [ebp - 0x174]
mov edx, dword [ebp - 0x150]
test ecx, ecx
jne 0x4d9ae8
cmp word [ebp - 0x8c], 0
je 0x4d9b52
lea eax, [ebp - 0x8c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4d9748
lea ecx, [ebp - 0x8c]
sub eax, ecx
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x8c]
mov dword [esp], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Nation
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x20ce
call fcn.004b3be0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [ebp - 0x178]
mov edx, dword [ebp - 0x150]
test eax, eax
jne 0x4d9ad0
cmp word [ebp - 0x4c], 0
je 0x4d9b3e
lea eax, [ebp - 0x4c]
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x4d97e0
lea ecx, [ebp - 0x4c]
sub eax, ecx
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x4c]
mov dword [esp], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Region
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x20d7
call fcn.004b3be0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, dword [ebp - 0x16c]
mov edx, dword [ebp - 0x150]
test ebx, ebx
jne 0x4d9940
cmp word [ebp - 0x14c], 0
je 0x4d9b5c
lea eax, [ebp - 0x14c]
add eax, 2
cmp word [eax], 0
jne 0x4d9890
lea ecx, [ebp - 0x14c]
sub eax, ecx
add eax, 2
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x14c]
mov dword [esp], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x164]
call eax
sub esp, 0x18
mov ebx, eax
mov eax, 0x2031
call fcn.004b3be0
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x5de434
mov dword [esp], eax
call fcn.004b46e0
mov eax, 0x2037
call fcn.004b3be0
mov dword [esp], str.Geo_names_are_not_available__skipping_test._n
call fcn.004b46b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0x201d
call fcn.004b3be0
mov dword [esp], str.GetUserDefaultGeoName___SetUserGeoName_is_not_available__skipping_test._n
call fcn.004b46b0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.Name
mov dword [esp], edx
call dword [sym.imp.advapi32.dll_RegDeleteValueW]
sub esp, 8
jmp 0x4d98ff
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov edi, eax
jmp 0x4d8a7d
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov edi, eax
jmp 0x4d8d18
mov eax, 1
cmp ecx, 0xdeadbeef
je 0x4d8cbd
mov eax, ecx
or eax, dword [0x8f0770]
sete al
movzx eax, al
jmp 0x4d8cbd
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov esi, eax
jmp 0x4d9248
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov esi, eax
jmp 0x4d964d
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov esi, eax
jmp 0x4d9145
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov edi, eax
jmp 0x4d8ea1
mov eax, 1
cmp ecx, 0xdeadbeef
je 0x4d8e46
mov eax, ecx
or eax, dword [0x8f0770]
sete al
movzx eax, al
jmp 0x4d8e46
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov edi, eax
jmp 0x4d8bce
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov esi, eax
jmp 0x4d93eb
movzx eax, bx
mov dword [esp], 0x5d8876
mov dword [esp + 4], eax
call fcn.004b35c0
mov esi, eax
jmp 0x4d955b
mov dword [esp + 4], str.Region
mov dword [esp], edx
call edi
sub esp, 8
jmp 0x4d9849
mov dword [esp + 4], str.Nation
mov dword [esp], edx
call edi
sub esp, 8
jmp 0x4d97b7
mov dword [esp + 4], str.Name
mov eax, dword [ebp - 0x150]
mov dword [esp], eax
call edi
sub esp, 8
jmp 0x4d971d
mov eax, 2
jmp 0x4d84d6
mov eax, 2
jmp 0x4d92e6
mov eax, 2
jmp 0x4d9456
mov eax, 2
jmp 0x4d97f1
mov eax, 2
jmp 0x4d96bc
mov eax, 2
jmp 0x4d975c
mov eax, 2
jmp 0x4d98a4