Function at 0x10063580
Capabilities:
Get geographical location

Disassembly:
push 0xffffffffffffffff
push 0x101ae175
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x43c
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x45c]
xor ebp, ebp
mov dword [esp + 0x454], ebp
cmp dword [eax - 8], ebp
je 0x10063ef6
push 0xd
lea ecx, [esp + 0x460]
call fcn.10196f6c
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x246]
mov word [esp + 0x244], bp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x3e]
mov esi, dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov word [esp + 0x3c], bp
push 0x104
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x248]
push ecx
push 0x1003
push 0x400
stosw word es:[edi], ax
call esi
lea edx, [esp + 0x3c]
push 0x104
push edx
push 0x1f
push 0x400
call esi
lea eax, [esp + 0x244]
lea ecx, [esp + 0x18]
push eax
call fcn.10199dd9
mov edi, dword [esp + 0x460]
mov byte [esp + 0x454], 1
cmp edi, ebp
je 0x1006366b
push 0x73
lea ecx, [esp + 0x1c]
call fcn.1019a2a1
cmp eax, 0xffffffff
je 0x1006366b
cmp eax, ebp
je 0x1006366b
dec eax
push 1
push eax
lea ecx, [esp + 0x20]
call fcn.10196bf4
push 0x74
lea ecx, [esp + 0x1c]
call fcn.10196f6c
push 0x48
lea ecx, [esp + 0x1c]
call fcn.10196f6c
push 0x68
lea ecx, [esp + 0x1c]
call fcn.10196f6c
push 0x6d
lea ecx, [esp + 0x1c]
call fcn.10196f6c
push 0x73
lea ecx, [esp + 0x1c]
call fcn.10196f6c
lea ecx, [esp + 0x244]
push ecx
lea ecx, [esp + 0x14]
call fcn.10199dd9
mov edx, dword [esp + 0x10]
mov byte [esp + 0x454], 2
mov eax, dword [edx - 8]
lea esi, [eax - 1]
cmp esi, ebp
jl 0x10063717
mov bl, 3
push 0x10203ad0
lea ecx, [esp + 0x24]
call fcn.10199dd9
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
mov byte [esp + 0x454], bl
mov ax, word [eax + esi*2]
push eax
call fcn.1019a2a1
cmp eax, 0xffffffff
jne 0x10063703
push 1
push esi
lea ecx, [esp + 0x18]
call fcn.10196bf4
lea ecx, [esp + 0x20]
mov byte [esp + 0x454], 2
call fcn.10199d65
dec esi
jns 0x100636cb
cmp edi, ebp
je 0x10063726
push 0x73
lea ecx, [esp + 0x14]
call fcn.10196f6c
push 0x10203acc
push 0x10203ac4
lea ecx, [esp + 0x18]
call fcn.10196dfb
push 0x10203ac0
push 0x10203ab8
lea ecx, [esp + 0x18]
call fcn.10196dfb
push 0x68
push 0x48
lea ecx, [esp + 0x18]
call fcn.10196db7
push 0x10203ac0
push 0x10203ab0
lea ecx, [esp + 0x18]
call fcn.10196dfb
push 0x10203aac
push 0x10203aa4
lea ecx, [esp + 0x18]
call fcn.10196dfb
push 0x10203aa0
push 0x10203a98
lea ecx, [esp + 0x18]
call fcn.10196dfb
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x28]
call fcn.10199dd9
push 0x79
lea ecx, [esp + 0x28]
mov byte [esp + 0x458], 4
call fcn.10196f6c
push 0x4d
lea ecx, [esp + 0x28]
call fcn.10196f6c
push 0x64
lea ecx, [esp + 0x28]
call fcn.10196f6c
lea edx, [esp + 0x3c]
lea ecx, [esp + 0x14]
push edx
call fcn.10199dd9
mov eax, dword [esp + 0x14]
mov byte [esp + 0x454], 5
mov eax, dword [eax - 8]
lea esi, [eax - 1]
cmp esi, ebp
jl 0x1006383b
mov bl, 6
push 0x10203a90
lea ecx, [esp + 0x24]
call fcn.10199dd9
mov ecx, dword [esp + 0x14]
mov byte [esp + 0x454], bl
mov ax, word [ecx + esi*2]
lea ecx, [esp + 0x20]
push eax
call fcn.1019a2a1
cmp eax, 0xffffffff
jne 0x10063827
push 1
push esi
lea ecx, [esp + 0x1c]
call fcn.10196bf4
lea ecx, [esp + 0x20]
mov byte [esp + 0x454], 5
call fcn.10199d65
dec esi
jns 0x100637ef
push 0x10203a8c
push str.yyyy
lea ecx, [esp + 0x1c]
call fcn.10196dfb
push 0x10203a8c
push 0x10203a78
lea ecx, [esp + 0x1c]
call fcn.10196dfb
push 0x10203a74
push 0x10203a6c
lea ecx, [esp + 0x1c]
call fcn.10196dfb
push 0x10203a68
push 0x10203a60
lea ecx, [esp + 0x1c]
call fcn.10196dfb
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [edx - 8]
mov edx, dword [esp + 0x24]
mov ecx, dword [ecx - 8]
mov ebp, dword [edx - 8]
mov edx, dword [esp + 0x14]
dec ecx
mov dword [esp + 0x1c], ebp
mov edx, dword [edx - 8]
cmp eax, ecx
jne 0x10063eb2
dec edx
cmp ebp, edx
jne 0x10063eb2
lea edi, [eax - 1]
test edi, edi
jl 0x10063a62
mov ebx, dword [esp + 0x47c]
mov ebp, dword [esp + 0x478]
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x45c]
mov ax, word [eax + edi*2]
push eax
call fcn.101971a9
mov esi, eax
cmp esi, 0xffffffff
je 0x10063a57
mov ecx, dword [esp + 0x10]
mov ax, word [ecx + edi*2 + 2]
and eax, 0xffff
add eax, 0xffffff98
cmp eax, 0xc
ja case.0x10063914.108
xor edx, edx
mov dl, byte [eax + 0x10063f3c]
jmp dword [edx*4 + 0x10063f28]
mov eax, dword [esp + 0x45c]
lea ecx, [esp + 0x20]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [esp + 0x464]
call fcn.10197061
mov ecx, dword [esp + 0x470]
push eax
mov byte [esp + 0x458], 7
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x20]
jmp 0x10063a1a
mov edx, dword [esp + 0x45c]
lea ecx, [esp + 0x45c]
mov eax, dword [edx - 8]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.10197061
mov ecx, dword [esp + 0x474]
push eax
mov byte [esp + 0x458], 8
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x38]
jmp 0x10063a1a
mov ecx, dword [esp + 0x45c]
lea edx, [esp + 0x34]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x45c]
sub eax, esi
dec eax
push eax
push edx
call fcn.10197061
push eax
mov ecx, ebp
mov byte [esp + 0x458], 9
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x34]
jmp 0x10063a1a
mov eax, dword [esp + 0x45c]
lea ecx, [esp + 0x30]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [esp + 0x464]
call fcn.10197061
push eax
mov ecx, ebx
mov byte [esp + 0x458], 0xa
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x30]
call fcn.10199d65
lea edx, [esp + 0x28]
push esi
push edx
lea ecx, [esp + 0x464]
call fcn.101970dd
push eax
lea ecx, [esp + 0x460]
mov byte [esp + 0x458], 0xb
call fcn.10199eac
lea ecx, [esp + 0x28]
mov byte [esp + 0x454], 5
call fcn.10199d65
dec edi
jns 0x100638d2
mov ebp, dword [esp + 0x1c]
push 0x20
lea ecx, [esp + 0x460]
call fcn.101971a9
mov esi, eax
cmp esi, 0xffffffff
je 0x10063b54
mov eax, dword [esp + 0x10]
mov ax, word [eax]
and eax, 0xffff
cmp eax, 0x68
je 0x10063ad7
cmp eax, 0x74
jne 0x10063b1c
mov ecx, dword [esp + 0x45c]
lea edx, [esp + 0x1c]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x45c]
sub eax, esi
dec eax
push eax
push edx
call fcn.10197061
mov ecx, dword [esp + 0x470]
push eax
mov byte [esp + 0x458], 0xd
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x1c]
jmp 0x10063b17
mov eax, dword [esp + 0x45c]
lea ecx, [esp + 0x28]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [esp + 0x464]
call fcn.10197061
mov ecx, dword [esp + 0x474]
push eax
mov byte [esp + 0x458], 0xc
call fcn.10199eac
mov byte [esp + 0x454], 5
lea ecx, [esp + 0x28]
call fcn.10199d65
lea edx, [esp + 0x1c]
push esi
push edx
lea ecx, [esp + 0x464]
call fcn.101970dd
push eax
lea ecx, [esp + 0x460]
mov byte [esp + 0x458], 0xe
call fcn.10199eac
lea ecx, [esp + 0x1c]
mov byte [esp + 0x454], 5
call fcn.10199d65
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x2c]
push eax
call fcn.10199dd9
mov bl, 0xf
push 0x2a
push 0x79
lea ecx, [esp + 0x34]
mov byte [esp + 0x45c], bl
call fcn.10196db7
push 0x2a
push 0x4d
lea ecx, [esp + 0x34]
call fcn.10196db7
push 0x2a
push 0x64
lea ecx, [esp + 0x34]
call fcn.10196db7
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x45c]
push ecx
push edx
call fcn.10014c40
add esp, 8
test eax, eax
jne 0x10063c17
lea eax, [esp + 0x20]
push eax
call fcn.10133f40
lea ecx, [esp + 0x20]
call fcn.10133b30
mov ecx, dword [esp + 0x464]
push eax
push 0x101f5558
push ecx
call fcn.1019753f
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.10133b50
mov edx, dword [esp + 0x468]
push eax
push 0x101f5558
push edx
call fcn.1019753f
add esp, 0xc
lea ecx, [esp + 0x20]
call fcn.10133b70
push eax
mov eax, dword [esp + 0x470]
push 0x101f5558
push eax
call fcn.1019753f
add esp, 0xc
jmp 0x10063ea1
lea edi, [ebp - 1]
mov ebp, dword [esp + 0x468]
test edi, edi
jl 0x10063d6d
mov ecx, dword [esp + 0x24]
mov ax, word [ecx + edi*2]
lea ecx, [esp + 0x45c]
push eax
call fcn.101971a9
mov esi, eax
cmp esi, 0xffffffff
je 0x10063d2f
mov edx, dword [esp + 0x14]
mov ax, word [edx + edi*2 + 2]
and eax, 0xffff
cmp eax, 0x4d
je 0x10063cf0
cmp eax, 0x64
je 0x10063caf
cmp eax, 0x79
jne 0x10063d2f
mov eax, dword [esp + 0x45c]
lea ecx, [esp + 0x1c]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [esp + 0x464]
call fcn.10197061
mov ecx, dword [esp + 0x464]
push eax
mov byte [esp + 0x458], 0x10
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x1c]
jmp 0x10063d2a
mov edx, dword [esp + 0x45c]
lea ecx, [esp + 0x45c]
mov eax, dword [edx - 8]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.10197061
mov ecx, dword [esp + 0x46c]
push eax
mov byte [esp + 0x458], 0x12
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x28]
jmp 0x10063d2a
mov ecx, dword [esp + 0x45c]
lea edx, [esp + 0x30]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x45c]
sub eax, esi
dec eax
push eax
push edx
call fcn.10197061
push eax
mov ecx, ebp
mov byte [esp + 0x458], 0x11
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x30]
call fcn.10199d65
lea eax, [esp + 0x34]
push esi
push eax
lea ecx, [esp + 0x464]
call fcn.101970dd
push eax
lea ecx, [esp + 0x460]
mov byte [esp + 0x458], 0x13
call fcn.10199eac
lea ecx, [esp + 0x34]
mov byte [esp + 0x454], bl
call fcn.10199d65
dec edi
jns 0x10063c29
push 0x20
lea ecx, [esp + 0x460]
call fcn.101971a9
mov esi, eax
cmp esi, 0xffffffff
je 0x10063ea1
mov ecx, dword [esp + 0x14]
mov ax, word [ecx]
and eax, 0xffff
cmp eax, 0x4d
je 0x10063e2b
cmp eax, 0x64
je 0x10063dea
cmp eax, 0x79
jne 0x10063e6a
mov edx, dword [esp + 0x45c]
lea ecx, [esp + 0x45c]
mov eax, dword [edx - 8]
sub eax, esi
dec eax
push eax
lea eax, [esp + 0x20]
push eax
call fcn.10197061
mov ecx, dword [esp + 0x464]
push eax
mov byte [esp + 0x458], 0x14
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x1c]
jmp 0x10063e65
mov ecx, dword [esp + 0x45c]
lea edx, [esp + 0x28]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x45c]
sub eax, esi
dec eax
push eax
push edx
call fcn.10197061
mov ecx, dword [esp + 0x46c]
push eax
mov byte [esp + 0x458], 0x16
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x28]
jmp 0x10063e65
mov eax, dword [esp + 0x45c]
lea ecx, [esp + 0x30]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [esp + 0x464]
call fcn.10197061
push eax
mov ecx, ebp
mov byte [esp + 0x458], 0x15
call fcn.10199eac
mov byte [esp + 0x454], bl
lea ecx, [esp + 0x30]
call fcn.10199d65
lea edx, [esp + 0x1c]
push esi
push edx
lea ecx, [esp + 0x464]
call fcn.101970dd
push eax
lea ecx, [esp + 0x460]
mov byte [esp + 0x458], 0x17
call fcn.10199eac
lea ecx, [esp + 0x1c]
mov byte [esp + 0x454], bl
call fcn.10199d65
lea ecx, [esp + 0x2c]
mov byte [esp + 0x454], 5
call fcn.10199d65
lea ecx, [esp + 0x14]
mov byte [esp + 0x454], 4
call fcn.10199d65
lea ecx, [esp + 0x24]
mov byte [esp + 0x454], 2
call fcn.10199d65
lea ecx, [esp + 0x10]
mov byte [esp + 0x454], 1
call fcn.10199d65
lea ecx, [esp + 0x18]
mov byte [esp + 0x454], 0
call fcn.10199d65
lea ecx, [esp + 0x45c]
mov dword [esp + 0x454], 0xffffffff
call fcn.10199d65
mov ecx, dword [esp + 0x44c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x448
ret 0x24