Function at 0x476a10
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x568f41
mov eax, dword fs:[0]
push eax
mov eax, 0x2930
call fcn.00528110
mov eax, dword [0x5c5ebc]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x581e78
mov ecx, dword [ebp + 0x10]
call fcn.00415e60
xor eax, eax
mov word [ebp - 0xa24], ax
push 0x208
push 0
lea ecx, [ebp - 0xa22]
push ecx
call fcn.005281f0
add esp, 0xc
push 0x105
lea edx, [ebp - 0xa24]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x5c
lea eax, [ebp - 0xa24]
push eax
call fcn.004111d0
add esp, 8
xor ecx, ecx
mov word [eax], cx
xor edx, edx
mov word [ebp - 0xc3c], dx
push 0x208
push 0
lea eax, [ebp - 0xc3a]
push eax
call fcn.005281f0
add esp, 0xc
lea ecx, [ebp - 0xa24]
push ecx
push 0x581e7c
lea edx, [ebp - 0xc3c]
push edx
call fcn.00527b98
add esp, 0xc
mov dword [ebp - 0xa28], 0
xor eax, eax
mov word [ebp - 0x204c], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x204a]
push ecx
call fcn.005281f0
add esp, 0xc
mov edx, dword [ebp + 0xc]
push edx
call fcn.00528324
add esp, 4
test eax, eax
jne 0x476b18
mov eax, dword [ebp + 0x14]
mov dword [eax], 0
xor eax, eax
jmp 0x4773c7
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00528324
add esp, 4
cmp eax, 0xc
je 0x476c47
push 0x581e9c
lea edx, [ebp - 0x285c]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28a8], eax
mov eax, dword [ebp - 0x28a8]
mov dword [ebp - 0x28ac], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x28ac]
push ecx
push 0x581ed4
push 0x581edc
lea edx, [ebp - 0x2860]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28b0], eax
mov eax, dword [ebp - 0x28b0]
mov dword [ebp - 0x28b4], eax
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x28b4]
push ecx
lea edx, [ebp - 0x2864]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x28b8], eax
mov eax, dword [ebp - 0x28b8]
mov dword [ebp - 0x28bc], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x28bc]
push ecx
lea edx, [ebp - 0x2868]
push edx
call fcn.0043b320
add esp, 0xc
mov dword [ebp - 0x28c0], eax
mov eax, dword [ebp - 0x28c0]
mov dword [ebp - 0x28c4], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x28c4]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00415e40
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x2868]
call fcn.00415e20
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x2864]
call fcn.00415e20
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2860]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x285c]
call fcn.00415e20
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
or eax, 0xffffffff
jmp 0x4773c7
xor eax, eax
mov word [ebp - 0x1444], ax
xor ecx, ecx
mov dword [ebp - 0x1442], ecx
mov word [ebp - 0x143e], cx
push 4
lea edx, [ebp - 0x1444]
push edx
push 3
push 0x1400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor eax, eax
mov word [ebp - 0x814], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x812]
push ecx
call fcn.005281f0
add esp, 0xc
xor edx, edx
mov word [ebp - 0x143c], dx
push 0x7fe
push 0
lea eax, [ebp - 0x143a]
push eax
call fcn.005281f0
add esp, 0xc
mov dword [ebp - 0x1448], 0
lea ecx, [ebp - 0x184c]
push ecx
call fcn.0043a620
add esp, 4
mov dword [ebp - 0x1448], eax
mov dword [ebp - 0x2050], 0
jmp 0x476ced
mov edx, dword [ebp - 0x2050]
add edx, 1
mov dword [ebp - 0x2050], edx
mov eax, dword [ebp - 0x2050]
cmp eax, dword [ebp - 0x1448]
jge 0x477050
mov ecx, dword [ebp - 0x2050]
shl ecx, 4
movzx edx, byte [ebp + ecx - 0x1847]
add edx, 8
and edx, 0xff
push edx
mov eax, dword [ebp - 0x2050]
shl eax, 4
movzx ecx, byte [ebp + eax - 0x1848]
add ecx, 8
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x2050]
shl edx, 4
movzx eax, byte [ebp + edx - 0x1849]
add eax, 8
and eax, 0xff
push eax
mov ecx, dword [ebp - 0x2050]
shl ecx, 4
movzx edx, byte [ebp + ecx - 0x184a]
add edx, 8
and edx, 0xff
push edx
mov eax, dword [ebp - 0x2050]
shl eax, 4
movzx ecx, byte [ebp + eax - 0x184b]
add ecx, 8
and ecx, 0xff
push ecx
mov edx, dword [ebp - 0x2050]
shl edx, 4
movzx eax, byte [ebp + edx - 0x184c]
add eax, 8
and eax, 0xff
push eax
push 0x581f14
lea ecx, [ebp - 0x814]
push ecx
call fcn.00527b98
add esp, 0x20
lea edx, [ebp - 0x814]
push edx
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004773e0
add esp, 0xc
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
xor eax, eax
mov word [ebp - 0x2854], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x2852]
push ecx
call fcn.005281f0
add esp, 0xc
lea edx, [ebp - 0x814]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2854]
push ecx
call fcn.004779c0
add esp, 0xc
mov dword [ebp - 0x2858], eax
cmp dword [ebp - 0x2858], 0
je 0x476ff3
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x476f64
movzx eax, word [ebp - 0x2854]
cmp eax, 0x2d
jne 0x476f55
lea ecx, [ebp - 0x2852]
push ecx
lea edx, [ebp - 0x286c]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28c8], eax
mov eax, dword [ebp - 0x28c8]
mov dword [ebp - 0x28cc], eax
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x28cc]
push ecx
push 0x581f48
push 0x581f50
lea edx, [ebp - 0x2870]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28d0], eax
mov eax, dword [ebp - 0x28d0]
mov dword [ebp - 0x28d4], eax
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x28d4]
push ecx
lea edx, [ebp - 0x2874]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x28d8], eax
mov eax, dword [ebp - 0x28d8]
mov dword [ebp - 0x28dc], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x28dc]
push ecx
lea edx, [ebp - 0x2878]
push edx
call fcn.0043b320
add esp, 0xc
mov dword [ebp - 0x28e0], eax
mov eax, dword [ebp - 0x28e0]
mov dword [ebp - 0x28e4], eax
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x28e4]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00415e40
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x2878]
call fcn.00415e20
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x2874]
call fcn.00415e20
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x2870]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x286c]
call fcn.00415e20
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
or eax, 0xffffffff
jmp 0x4773c7
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
jmp 0x4773c7
movzx ecx, word [ebp - 0x2854]
cmp ecx, 0x2d
jne 0x476f9b
push 0x400
lea edx, [ebp - 0x2852]
push edx
lea eax, [ebp - 0x143c]
push eax
call fcn.0052a496
add esp, 0xc
xor ecx, ecx
mov word [ebp - 0xc3e], cx
jmp 0x476cde
lea edx, [ebp - 0x814]
push edx
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x2854]
push ecx
call fcn.004773e0
add esp, 0xc
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
je 0x476fec
lea ecx, [ebp - 0xc3c]
push ecx
lea edx, [ebp - 0x2854]
push edx
push 0x581f88
push 0x581f98
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
jmp 0x4773c7
jmp 0x476cde
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
je 0x477007
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
jmp 0x4773c7
push 0x581fa8
lea eax, [ebp - 0x1444]
push eax
call fcn.00527f0e
add esp, 8
test eax, eax
je 0x47704b
push 0x581fb0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004773e0
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x47704b
mov eax, dword [ebp + 0x14]
mov eax, dword [eax]
jmp 0x4773c7
jmp 0x476cde
push 0x581fcc
lea ecx, [ebp - 0x1444]
push ecx
call fcn.00527f0e
add esp, 8
test eax, eax
je 0x47709d
push str.888888888888
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004773e0
add esp, 0xc
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
cmp dword [edx], 0
je 0x47709d
xor eax, eax
mov word [ebp - 0x143c], ax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ecx]
jmp 0x4773c7
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
movzx eax, word [ebp - 0x143c]
test eax, eax
je 0x4771cd
lea ecx, [ebp - 0x143c]
push ecx
lea edx, [ebp - 0x287c]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28e8], eax
mov eax, dword [ebp - 0x28e8]
mov dword [ebp - 0x28ec], eax
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x28ec]
push ecx
push 0x581ff0
push 0x581ff8
lea edx, [ebp - 0x2880]
push edx
call fcn.00499930
add esp, 8
mov dword [ebp - 0x28f0], eax
mov eax, dword [ebp - 0x28f0]
mov dword [ebp - 0x28f4], eax
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x28f4]
push ecx
lea edx, [ebp - 0x2884]
push edx
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x28f8], eax
mov eax, dword [ebp - 0x28f8]
mov dword [ebp - 0x28fc], eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x28fc]
push ecx
lea edx, [ebp - 0x2888]
push edx
call fcn.0043b320
add esp, 0xc
mov dword [ebp - 0x2900], eax
mov eax, dword [ebp - 0x2900]
mov dword [ebp - 0x2904], eax
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x2904]
push ecx
mov ecx, dword [ebp + 0x10]
call fcn.00415e40
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x2888]
call fcn.00415e20
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x2884]
call fcn.00415e20
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2880]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x287c]
call fcn.00415e20
or eax, 0xffffffff
jmp 0x4773c7
push 0x582030
lea edx, [ebp - 0x1444]
push edx
call fcn.00527f0e
add esp, 8
test eax, eax
jne 0x4772bc
push 0x582038
push 0x5820f8
push 0x582100
lea eax, [ebp - 0x288c]
push eax
call fcn.00499930
add esp, 8
mov dword [ebp - 0x2908], eax
mov ecx, dword [ebp - 0x2908]
mov dword [ebp - 0x290c], ecx
mov dword [ebp - 4], 0xc
mov edx, dword [ebp - 0x290c]
push edx
lea eax, [ebp - 0x2890]
push eax
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x2910], eax
mov ecx, dword [ebp - 0x2910]
mov dword [ebp - 0x2914], ecx
mov byte [ebp - 4], 0xd
mov edx, dword [ebp - 0x2914]
push edx
lea eax, [ebp - 0x2894]
push eax
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x2918], eax
mov ecx, dword [ebp - 0x2918]
mov dword [ebp - 0x291c], ecx
mov byte [ebp - 4], 0xe
mov edx, dword [ebp - 0x291c]
push edx
mov ecx, dword [ebp + 0x10]
call fcn.00415e40
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2894]
call fcn.00415e20
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x2890]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x288c]
call fcn.00415e20
jmp 0x4773c5
push str.Please_send_your_Machine_ID_and_License_to_us__so_we_can_manually_register_it_
lea eax, [ebp - 0x2898]
push eax
call fcn.00499930
add esp, 8
mov dword [ebp - 0x2920], eax
mov ecx, dword [ebp - 0x2920]
mov dword [ebp - 0x2924], ecx
mov dword [ebp - 4], 0xf
mov edx, dword [ebp - 0x2924]
push edx
push 0x5821d8
push str.Sorry._Registration_Failed_
lea eax, [ebp - 0x289c]
push eax
call fcn.00499930
add esp, 8
mov dword [ebp - 0x2928], eax
mov ecx, dword [ebp - 0x2928]
mov dword [ebp - 0x292c], ecx
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x292c]
push edx
lea eax, [ebp - 0x28a0]
push eax
call fcn.00411930
add esp, 0xc
mov dword [ebp - 0x2930], eax
mov ecx, dword [ebp - 0x2930]
mov dword [ebp - 0x2934], ecx
mov byte [ebp - 4], 0x11
mov edx, dword [ebp - 0x2934]
push edx
lea eax, [ebp - 0x28a4]
push eax
call fcn.0043b320
add esp, 0xc
mov dword [ebp - 0x2938], eax
mov ecx, dword [ebp - 0x2938]
mov dword [ebp - 0x293c], ecx
mov byte [ebp - 4], 0x12
mov edx, dword [ebp - 0x293c]
push edx
mov ecx, dword [ebp + 0x10]
call fcn.00415e40
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x28a4]
call fcn.00415e20
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x28a0]
call fcn.00415e20
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x289c]
call fcn.00415e20
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2898]
call fcn.00415e20
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00527aad
mov esp, ebp
pop ebp
ret