Function at 0x4758d0
Capabilities:
Get geographical location

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
push edi
mov edi, dword [esp + 0x38]
push 0
push 7
lea ebx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.004592b0
mov esi, dword [esp + 0x10]
cmp dword [edi], esi
je 0x47592b
call fcn.00401700
test esi, esi
mov dword [edi], esi
je 0x47592b
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x475924
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x47592b
mov eax, edi
call fcn.00459380
lea edi, [esp + 0x10]
call fcn.00401700
push 0
push 8
lea ebx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.004592b0
mov esi, dword [esp + 0x10]
cmp dword [ebp], esi
je 0x475985
mov edi, ebp
call fcn.00401700
test esi, esi
mov dword [ebp], esi
je 0x475985
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x47597e
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x475985
mov eax, ebp
call fcn.00459380
lea edi, [esp + 0x10]
call fcn.00401700
mov eax, ebp
call fcn.00459380
mov eax, dword [ebp]
test eax, eax
je 0x4759a1
add eax, 4
jmp 0x4759a3
xor eax, eax
mov ebp, dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
push 7
push eax
push 0x59
push 0x400
call ebp
mov esi, dword [esp + 0x38]
mov eax, esi
call fcn.00459380
mov eax, dword [esi]
test eax, eax
je 0x4759cb
add eax, 4
jmp 0x4759cd
xor eax, eax
push 6
push eax
push 0x5a
push 0x400
call ebp
push 0
push 8
lea ebx, [esp + 0x18]
mov dword [esp + 0x18], 0
call fcn.004592b0
mov eax, ebx
call fcn.00459380
mov ebx, dword [esp + 0x10]
test ebx, ebx
je 0x475a02
lea eax, [ebx + 4]
jmp 0x475a04
xor eax, eax
push 7
push eax
push 0x59
push 0x400
call ebp
test ebx, ebx
je 0x475a38
lea edi, [ebx + 4]
test edi, edi
je 0x475a2b
mov esi, 0x6aa8b4
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475a4a
test dword [ebx], 0xffffff00
je 0x475a38
cmp byte [edi], 0
jne 0x475a43
cmp byte [0x6aa8b4], 0
jne 0x475a51
jmp 0x475a97
xor eax, eax
cmp eax, 0x6aa8b4
sete al
test al, al
jne 0x475a97
test ebx, ebx
je 0x475b4f
lea edi, [ebx + 4]
test edi, edi
je 0x475a70
mov esi, 0x6aaaac
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475a8c
test dword [ebx], 0xffffff00
je 0x475b4f
cmp byte [edi], 0
je 0x475b4f
xor eax, eax
cmp eax, 0x6aaaac
sete al
test al, al
je 0x475b4f
mov ecx, dword [esp + 0x34]
cmp dword [ecx], ebx
je 0x475ad1
mov edi, ecx
call fcn.00401700
test ebx, ebx
mov dword [edi], ebx
je 0x475ad1
movzx edx, byte [ebx]
cmp edx, 0x80
jae 0x475aca
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x475ad1
mov eax, edi
call fcn.00459380
push 0
push 7
lea ebx, [esp + 0x1c]
mov dword [esp + 0x1c], 0
call fcn.004592b0
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
cmp dword [eax], esi
mov ebx, eax
je 0x475b26
mov edi, ebx
call fcn.00401700
test esi, esi
mov dword [ebx], esi
je 0x475b26
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x475b1f
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x475b26
mov eax, ebx
call fcn.00459380
lea edi, [esp + 0x14]
call fcn.00401700
mov eax, ebx
call fcn.00459380
mov eax, dword [ebx]
test eax, eax
je 0x475b41
add eax, 4
jmp 0x475b43
xor eax, eax
push 6
push eax
push 0x5a
push 0x400
call ebp
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
test eax, eax
je 0x475bb3
test dword [eax], 0xffffff00
je 0x475b77
cmp byte [eax + 4], 0
je 0x475b77
add eax, 4
push eax
call fcn.00608929
add esp, 4
test eax, eax
jne 0x475bb3
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
test eax, eax
je 0x475bb3
test dword [eax], 0xffffff00
je 0x475bb3
cmp byte [eax + 4], 0
je 0x475bb3
test dword [eax], 0xffffff00
je 0x475c13
cmp byte [eax + 4], 0
je 0x475c13
add eax, 4
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x475ba3
sub eax, edx
cmp eax, 3
jbe 0x475c13
mov eax, 2
mov edi, 0x6aaab0
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], 0
call fcn.00459750
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x38]
cmp dword [edi], esi
je 0x475c0a
call fcn.00401700
test esi, esi
mov dword [edi], esi
je 0x475c0a
movzx ecx, byte [esi]
cmp ecx, 0x80
jae 0x475c03
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x475c0a
mov eax, edi
call fcn.00459380
lea edi, [esp + 0x14]
call fcn.00401700
mov ebp, dword [esp + 0x34]
mov eax, dword [ebp]
xor ebx, ebx
cmp eax, ebx
je 0x475e8a
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475c54
cmp eax, ebx
je 0x475c42
lea edi, [eax + 4]
mov esi, 0x6aaab4
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475c7b
xor edi, edi
mov esi, 0x6aaab4
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475c7b
cmp eax, ebx
je 0x475e8a
test dword [eax], 0xffffff00
je 0x475d84
cmp byte [eax + 4], 0
je 0x475d84
lea ecx, [eax + 4]
cmp ecx, 0x6aaab4
sete cl
test cl, cl
je 0x475d84
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
cmp eax, ebx
je 0x476128
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475cc4
cmp eax, ebx
je 0x475cb2
lea edi, [eax + 4]
mov esi, 0x6aaab8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ce3
xor edi, edi
mov esi, 0x6aaab8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ce3
cmp eax, ebx
je 0x476128
test dword [eax], 0xffffff00
je 0x475d11
cmp byte [eax + 4], 0
je 0x475d11
lea ecx, [eax + 4]
cmp ecx, 0x6aaab8
sete cl
test cl, cl
je 0x475d11
mov edi, str.zh_CN
mov eax, 5
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.00459750
lea esi, [esp + 0x38]
mov eax, ebp
call fcn.004017d0
jmp 0x47611f
cmp eax, ebx
je 0x476128
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475d49
cmp eax, ebx
je 0x475d37
lea edi, [eax + 4]
mov esi, 0x6aaabc
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475d6f
xor edi, edi
mov esi, 0x6aaabc
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475d6f
cmp eax, ebx
je 0x476128
test dword [eax], 0xffffff00
je 0x476128
cmp byte [eax + 4], 0
je 0x476128
add eax, 4
cmp eax, 0x6aaabc
sete al
test al, al
je 0x476128
mov edi, str.zh_TW
jmp 0x475cef
cmp eax, ebx
je 0x475e8a
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475dbc
cmp eax, ebx
je 0x475daa
lea edi, [eax + 4]
mov esi, 0x6aaac0
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ddb
xor edi, edi
mov esi, 0x6aaac0
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ddb
cmp eax, ebx
je 0x475e8a
test dword [eax], 0xffffff00
je 0x475de6
cmp byte [eax + 4], 0
je 0x475de6
lea ecx, [eax + 4]
cmp ecx, 0x6aaac0
sete cl
test cl, cl
jne 0x4760cd
cmp eax, ebx
je 0x475e8a
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475e1e
cmp eax, ebx
je 0x475e0c
lea edi, [eax + 4]
mov esi, 0x6aaac4
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475e39
xor edi, edi
mov esi, 0x6aaac4
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475e39
cmp eax, ebx
je 0x475e8a
test dword [eax], 0xffffff00
je 0x475e44
cmp byte [eax + 4], 0
je 0x475e44
lea ecx, [eax + 4]
cmp ecx, 0x6aaac4
sete cl
test cl, cl
jne 0x4760cd
cmp eax, ebx
je 0x475e8a
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475e78
cmp eax, ebx
je 0x475e66
lea edi, [eax + 4]
mov esi, 0x6aa91c
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ecd
xor edi, edi
mov esi, 0x6aa91c
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475ecd
cmp eax, ebx
je 0x475e8a
test dword [eax], 0xffffff00
je 0x475e8a
cmp byte [eax + 4], 0
jne 0x475ec4
cmp byte [0x6aa91c], 0
je 0x475ed4
cmp eax, ebx
je 0x476128
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475f67
cmp eax, ebx
je 0x475f55
lea edi, [eax + 4]
mov esi, 0x6aaac8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475f8a
lea ecx, [eax + 4]
cmp ecx, 0x6aa91c
sete cl
test cl, cl
je 0x475e93
mov edx, dword [esp + 0x38]
mov ecx, dword [edx]
cmp ecx, ebx
je 0x475f20
lea edx, [ecx + 4]
cmp edx, ebx
je 0x475f0e
cmp ecx, ebx
je 0x475efc
lea edi, [ecx + 4]
mov esi, 0x6aa8c8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475f40
xor edi, edi
mov esi, 0x6aa8c8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475f40
cmp ecx, ebx
je 0x475f20
test dword [ecx], 0xffffff00
je 0x475f20
cmp byte [ecx + 4], 0
jne 0x475f37
cmp byte [0x6aa8c8], 0
jne 0x475e93
mov edi, str.en_GB
jmp 0x475cef
add ecx, 4
cmp ecx, 0x6aa8c8
sete cl
test cl, cl
je 0x475e93
mov edi, str.en_GB
jmp 0x475cef
xor edi, edi
mov esi, 0x6aaac8
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475f8a
cmp eax, ebx
je 0x476128
test dword [eax], 0xffffff00
je 0x476000
cmp byte [eax + 4], 0
je 0x476000
lea ecx, [eax + 4]
cmp ecx, 0x6aaac8
sete cl
test cl, cl
je 0x476000
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
cmp eax, ebx
je 0x475ff6
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x475fcb
cmp eax, ebx
je 0x475fb9
lea edi, [eax + 4]
mov esi, 0x6aaacc
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475fe5
xor edi, edi
mov esi, 0x6aaacc
mov ecx, 3
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
jmp 0x475fe5
cmp eax, ebx
je 0x475ff6
test dword [eax], 0xffffff00
je 0x475ff6
cmp byte [eax + 4], 0
je 0x475ff6
add eax, 4
cmp eax, 0x6aaacc
sete al
test al, al
je 0x475ff6
mov edi, str.pt_BR
jmp 0x475cef
mov edi, str.pt_PT
jmp 0x475cef
cmp eax, ebx
je 0x476128
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x476038
cmp eax, ebx
je 0x476026
lea edi, [eax + 4]
mov esi, 0x6aaaac
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x476057
xor edi, edi
mov esi, 0x6aaaac
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x476057
cmp eax, ebx
je 0x476128
test dword [eax], 0xffffff00
je 0x47606d
cmp byte [eax + 4], 0
je 0x47606d
lea ecx, [eax + 4]
cmp ecx, 0x6aaaac
sete cl
test cl, cl
je 0x47606d
mov eax, 3
mov edi, 0x6aa88c
jmp 0x475cf4
cmp eax, ebx
je 0x476128
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x476099
cmp eax, ebx
je 0x476085
add eax, 4
jmp 0x476087
xor eax, eax
mov edi, eax
mov esi, 0x6aaad0
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x4760b7
cmp eax, ebx
je 0x476128
test dword [eax], 0xffffff00
je 0x476128
cmp byte [eax + 4], 0
je 0x476128
add eax, 4
cmp eax, 0x6aaad0
sete al
test al, al
je 0x476128
mov eax, 2
mov edi, 0x6aa86c
jmp 0x475cf4
mov eax, 2
mov edi, 0x6a6f4c
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.00459750
mov esi, dword [esp + 0x38]
cmp dword [ebp], esi
je 0x47611f
mov edi, ebp
call fcn.00401700
cmp esi, ebx
mov dword [ebp], esi
je 0x47611f
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x476118
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x47611f
mov eax, ebp
call fcn.00459380
lea edi, [esp + 0x38]
call fcn.00401700
mov eax, dword [ebp]
cmp eax, ebx
je 0x476171
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x47615f
cmp eax, ebx
je 0x47614d
lea edi, [eax + 4]
mov esi, 0x6aa86c
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x476185
xor edi, edi
mov esi, 0x6aa86c
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x476185
cmp eax, ebx
je 0x476171
test dword [eax], 0xffffff00
je 0x476171
cmp byte [eax + 4], 0
jne 0x47617c
cmp byte [0x6aa86c], 0
jne 0x47618c
jmp 0x4761ec
lea ecx, [eax + 4]
cmp ecx, 0x6aa86c
sete cl
test cl, cl
jne 0x4761ec
cmp eax, ebx
je 0x4761d2
lea ecx, [eax + 4]
cmp ecx, ebx
je 0x4761c0
cmp eax, ebx
je 0x4761ae
lea edi, [eax + 4]
mov esi, 0x6aa870
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x4761e5
xor edi, edi
mov esi, 0x6aa870
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jmp 0x4761e5
cmp eax, ebx
je 0x4761d2
test dword [eax], 0xffffff00
je 0x4761d2
cmp byte [eax + 4], 0
jne 0x4761dd
cmp byte [0x6aa870], 0
jne 0x476247
jmp 0x4761ec
add eax, 4
cmp eax, 0x6aa870
sete al
test al, al
je 0x476247
mov eax, 2
mov edi, 0x6aa91c
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebx
call fcn.00459750
mov esi, dword [esp + 0x38]
cmp dword [ebp], esi
je 0x47623e
mov edi, ebp
call fcn.00401700
cmp esi, ebx
mov dword [ebp], esi
je 0x47623e
movzx eax, byte [esi]
cmp eax, 0x80
jae 0x476237
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
and eax, 0xff
cmp eax, 0xff
jne 0x47623e
mov eax, ebp
call fcn.00459380
lea edi, [esp + 0x38]
call fcn.00401700
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x1c]
push edx
mov eax, str.ytHLocal::lang
mov dword [esp + 0x40], ebx
call fcn.00406220
lea eax, [esp + 0x18]
call fcn.004029c0
lea edi, [esp + 0x20]
mov esi, eax
call fcn.00401700
lea edi, [esp + 0x1c]
mov dword [esp + 0x20], ebx
call fcn.00401700
cmp esi, ebx
je 0x4762c6
cmp esi, 0x2c
jae 0x4762c6
mov edi, dword [esi*4 + 0x6e97d0]
cmp edi, ebx
mov dword [esp + 0x38], ebx
je 0x4762b4
mov eax, edi
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4762a0
sub eax, edx
lea ecx, [esp + 0x38]
call fcn.00459750
lea esi, [esp + 0x38]
mov eax, ebp
call fcn.004017d0
mov edi, esi
call fcn.00401700
cmp byte [esp + 0x3c], 0
je 0x476301
mov edi, ebp
call fcn.00475850
test al, al
jne 0x476301
mov eax, 2
mov edi, 0x6aa91c
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
call fcn.00459750
lea esi, [esp + 0x3c]
mov eax, ebp
call fcn.004017d0
mov edi, esi
call fcn.00401700
lea edi, [esp + 0x10]
call fcn.00401700
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x20
ret