Function at 0x10005d10
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1011b898
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x101672f8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
push 0x40
call fcn.1000bab7
xor ecx, ecx
add esp, 4
cmp eax, ecx
je 0x10005d75
mov dword [eax], vtable.canonsoft_uix::CRegionInfoType.0
mov dword [eax + 0x18], 7
mov dword [eax + 0x14], ecx
xor edx, edx
mov word [eax + 4], dx
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x30], ecx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], ecx
jmp 0x10005d77
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ecx
mov ecx, dword [esi + 0x3c]
mov dword [ebp - 0x18], ecx
cmp ecx, dword [esi + 0x40]
je 0x10005fe1
nop
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
push 0
push 0x10168888
push 0x10168860
push 0
push eax
call fcn.1010ff5c
mov ebx, eax
add esp, 0x14
mov dword [ebp - 0x14], ebx
test ebx, ebx
je 0x10005fca
mov edx, dword [ebx]
mov eax, dword [edx + 0xc]
mov ecx, ebx
call eax
mov edi, dword [eax + 0x10]
mov ecx, edi
cmp ecx, edi
jae 0x10005dcb
mov esi, edi
cmp edi, 0xb
jb 0x10005dd7
mov esi, 0xb
cmp dword [eax + 0x14], 8
jb 0x10005de1
mov edx, dword [eax]
jmp 0x10005de3
mov edx, eax
mov ecx, str.CountryInfo
test esi, esi
je 0x10005e08
lea esp, [esp]
mov bx, word [edx]
cmp bx, word [ecx]
jne 0x10005e80
add edx, 2
add ecx, 2
dec esi
jne 0x10005df0
mov ebx, dword [ebp - 0x14]
cmp edi, 0xb
jb 0x10005f0e
xor ecx, ecx
cmp edi, 0xb
setne cl
test ecx, ecx
jne 0x10005f0e
push ebx
call fcn.1000b320
mov esi, dword [ebp - 0x10]
add esi, 0x20
mov edi, eax
mov eax, dword [esi + 4]
lea ecx, [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x14], edi
cmp ecx, eax
jae 0x10005eb8
mov edx, dword [esi]
cmp edx, ecx
ja 0x10005eb8
mov edi, ecx
mov ecx, dword [esi + 8]
sub edi, edx
sar edi, 2
cmp eax, ecx
jne 0x10005e9f
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x1000603b
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10005e9f
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x10005e91
xor ecx, ecx
jmp 0x10005e93
sbb ecx, ecx
and ecx, 0xfffffffe
inc ecx
je 0x10005e05
mov ebx, dword [ebp - 0x14]
jmp 0x10005e19
add ecx, edx
cmp ecx, eax
jae 0x10005e99
mov ecx, eax
push ecx
call fcn.10007a20
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea edi, [edx + edi*4]
test eax, eax
je 0x10005eaf
mov ecx, dword [edi]
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x10005fca
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x10005efc
mov edx, dword [esi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x1000603b
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x10005efc
mov edx, ecx
shr edx, 1
mov ebx, 0x3fffffff
sub ebx, edx
cmp ebx, ecx
jae 0x10005eee
xor ecx, ecx
jmp 0x10005ef0
add ecx, edx
cmp ecx, eax
jae 0x10005ef6
mov ecx, eax
push ecx
call fcn.10007a20
mov eax, dword [esi + 4]
test eax, eax
je 0x10005f05
mov dword [eax], edi
add dword [esi + 4], 4
jmp 0x10005fca
mov esi, dword [eax + 0x10]
mov ecx, esi
cmp ecx, esi
jae 0x10005f17
mov edx, esi
cmp esi, 0xc
jb 0x10005f23
mov edx, 0xc
cmp dword [eax + 0x14], 8
jb 0x10005f2d
mov ecx, dword [eax]
jmp 0x10005f2f
mov ecx, eax
mov eax, str.LanguageInfo
test edx, edx
je 0x10005f53
mov di, word [ecx]
cmp di, word [eax]
jne 0x10005f4b
add ecx, 2
add eax, 2
dec edx
jne 0x10005f38
jmp 0x10005f53
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x10005f60
cmp esi, 0xc
jb 0x10005fca
xor eax, eax
cmp esi, 0xc
setne al
test eax, eax
jne 0x10005fca
push ebx
call fcn.1000b5a0
mov esi, dword [ebp - 0x10]
mov edi, eax
mov eax, dword [esi + 0x34]
lea ecx, [ebp - 0x14]
add esp, 4
mov dword [ebp - 0x14], edi
cmp ecx, eax
jae 0x10005fb0
mov ecx, dword [esi + 0x30]
lea edx, [ebp - 0x14]
cmp ecx, edx
ja 0x10005fb0
mov edi, edx
sub edi, ecx
sar edi, 2
cmp eax, dword [esi + 0x38]
jne 0x10005f9d
lea eax, [esi + 0x30]
call fcn.100079d0
mov eax, dword [esi + 0x30]
lea edi, [eax + edi*4]
mov eax, dword [esi + 0x34]
test eax, eax
je 0x10005fc6
mov ecx, dword [edi]
mov dword [eax], ecx
jmp 0x10005fc6
cmp eax, dword [esi + 0x38]
jne 0x10005fbd
lea eax, [esi + 0x30]
call fcn.100079d0
mov eax, dword [esi + 0x34]
test eax, eax
je 0x10005fc6
mov dword [eax], edi
add dword [esi + 0x34], 4
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
add eax, 4
mov dword [ebp - 0x18], eax
cmp eax, dword [edx + 0x40]
jne 0x10005d90
mov esi, edx
mov ebx, dword [esi + 0x2c]
mov dword [ebp - 0x18], ebx
cmp ebx, dword [esi + 0x30]
je 0x100060c2
mov eax, dword [ebx]
push 0
push 0x10168924
push 0x10168860
push 0
push eax
call fcn.1010ff5c
mov edi, eax
add esp, 0x14
test edi, edi
je 0x100060b0
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
mov ecx, edi
call edx
mov esi, dword [eax + 0x10]
mov ecx, esi
cmp ecx, esi
jae 0x10006025
mov edx, esi
cmp esi, 8
jb 0x10006031
mov edx, 8
cmp dword [eax + 0x14], 8
jb 0x10006045
mov ecx, dword [eax]
jmp 0x10006047
push str.vector_T__too_long
call fcn.1010f924
mov ecx, eax
mov eax, str.AreaName
test edx, edx
je 0x1000606b
mov bx, word [ecx]
cmp bx, word [eax]
jne 0x10006063
add ecx, 2
add eax, 2
dec edx
jne 0x10006050
jmp 0x1000606b
sbb eax, eax
and eax, 0xfffffffe
inc eax
jne 0x10006078
cmp esi, 8
jb 0x100060ad
xor eax, eax
cmp esi, 8
setne al
test eax, eax
jne 0x100060ad
mov edx, dword [edi]
mov eax, dword [edx + 0x18]
mov ecx, edi
call eax
cmp dword [eax + 0x14], 8
jb 0x1000608d
mov eax, dword [eax]
mov ecx, eax
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x10006092
sub ecx, esi
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 4
call fcn.10002a10
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp + 8]
add ebx, 4
mov dword [ebp - 0x18], ebx
cmp ebx, dword [ecx + 0x30]
jne 0x10005ff0
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret