Function at 0x10019a90
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x360
mov eax, dword [0x1017c928]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
lea eax, [ebp - 0x354]
push edi
push 0x1b0
push ebx
push eax
mov dword [ebp - 0x358], ebx
mov dword [ebp - 0xc], ebx
mov word [ebp - 8], bx
mov word [ebp - 0x35c], bx
mov byte [ebp - 0x35a], bl
call fcn.100a6450
mov esi, 0x80
lea eax, [ebp - 0x10c]
push esi
push ebx
push eax
call fcn.100a6450
push esi
lea eax, [ebp - 0x8c]
push ebx
push eax
call fcn.100a6450
add esp, 0x24
lea eax, [ebp - 0x354]
push eax
call dword [sym.imp.kernel32.dll_GetDynamicTimeZoneInformation]
cmp eax, 0xffffffff
je 0x10019ba3
push 0x10
call dword [sym.imp.kernel32.dll_GetUserGeoID]
push ebx
push 3
lea ecx, [ebp - 0xc]
push ecx
push 4
push eax
call dword [sym.imp.kernel32.dll_GetGeoInfoW]
mov edi, eax
lea eax, [ebp - 0x358]
push eax
push 3
lea eax, [ebp - 0xc]
push eax
push ebx
lea eax, [ebp - 0x35c]
push 3
push eax
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
lea eax, [ebp - 0x358]
push eax
push str.windowsZones
push ebx
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
mov esi, eax
lea eax, [ebp - 0x358]
push eax
push esi
push str.mapTimezones
push esi
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
lea eax, [ebp - 0x358]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x2a8]
push eax
push ebx
lea eax, [ebp - 0x10c]
push 0x80
push eax
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
add esp, 0x4c
cmp dword [ebp - 0x358], ebx
jle 0x10019bb4
test esi, esi
je 0x10019ba3
push esi
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
pop ecx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100814c9
leave
ret
cmp word [ebp - 0x2a8], bx
je 0x10019c99
lea ecx, [ebp - 0x1a4]
call sym.icucnv67.dll_public:_void___thiscall_icu_67::StackUResourceBundle::constructor_void_
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x1a4]
push eax
lea eax, [ebp - 0x10c]
push eax
push esi
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
add esp, 0x10
cmp dword [ebp - 0x358], ebx
jg 0x10019c8e
test edi, edi
je 0x10019c24
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x35c]
push eax
lea eax, [ebp - 0x1a4]
push eax
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
mov ecx, eax
add esp, 0x10
test ecx, ecx
jne 0x10019c4e
lea eax, [ebp - 0x358]
mov dword [ebp - 0x358], ebx
push eax
lea eax, [ebp - 0x360]
push eax
lea eax, [ebp - 0x1a4]
push 0x100fdd94
push eax
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
add esp, 0x10
mov ecx, eax
cmp dword [ebp - 0x358], ebx
jg 0x10019c8e
movzx eax, word [ecx]
mov edx, ebx
test ax, ax
je 0x10019c87
mov edi, eax
cmp di, 0x20
je 0x10019c7f
mov al, byte [ecx]
add ecx, 2
mov byte [ebp + edx - 0x8c], al
inc edx
movzx eax, word [ecx]
mov edi, eax
test ax, ax
jne 0x10019c62
cmp edx, 0x80
jae 0x10019cc2
mov byte [ebp + edx - 0x8c], bl
lea ecx, [ebp - 0x1a4]
call sym.icucnv67.dll_public:_void___thiscall_icu_67::StackUResourceBundle::destructor_void_
cmp byte [ebp - 0x8c], bl
je 0x10019cb0
lea eax, [ebp - 0x8c]
push eax
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
pop ecx
mov ebx, eax
test esi, esi
je 0x10019cbb
push esi
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
pop ecx
mov eax, ebx
jmp 0x10019ba5
call sym.icucnv67.dll_public:_void___thiscall_icu_67::Edits::addReplace_int__int_
int3