Function at 0x587370
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ad430
mov eax, dword fs:[0]
push eax
sub esp, 0xac
mov eax, dword [0x6340c4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x9c], ebx
push 5
push str.en_us
call fcn.00445b10
xor edi, edi
mov dword [ebp - 0xb8], edi
mov dword [ebp - 0xb4], edi
mov dword [ebp - 0xb0], edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xac], edi
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], edi
push edi
push edi
push 0x59
push 0x800
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov esi, eax
test esi, esi
jg 0x587404
lea esi, [edi + 0x7f]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, str.Get_Language_buffer_length
jmp 0x58743a
push ecx
push esi
lea ecx, [ebp - 0xb8]
call fcn.00497560
mov edi, dword [ebp - 0xb8]
push esi
push edi
push 0x59
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jg 0x58745d
mov esi, 0x8c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, str.Fill_language_buffer
push ecx
push 0
push eax
push str.GetLocaleInfo
push 0x45
push esi
push str.C:drone_src_srcCommoni18nMsgCatalog.cpp
push str.MsgCatalog::getLangCode
call fcn.00573980
add esp, 0x20
jmp 0x5877f7
lea eax, [ebp - 0x90]
mov dword [ebp - 0x94], eax
test edi, edi
jne 0x58747a
xor edx, edx
mov dword [ebp - 0x94], edx
jmp 0x58759d
push edi
call fcn.004d4367
add esp, 4
lea ebx, [eax + 1]
lea esi, [ebx*4]
mov dword [ebp - 0x98], ebx
test esi, esi
js 0x58782c
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x587567
cmp esi, 0x80
jle 0x5874d0
push 1
push esi
push eax
call fcn.004d4fdf
add esp, 0xc
test eax, eax
je 0x587836
jmp 0x58757e
push eax
call fcn.004d108b
add esp, 4
lea eax, [ebp - 0x90]
mov dword [ebp - 0x94], eax
push 0
push 0
push esi
push eax
push ebx
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ebx, ebx
test eax, eax
sete bl
test eax, eax
jne 0x58755d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x58755d
mov ebx, dword [ebp - 0x98]
push 0
push 0
push 0
push 0
push ebx
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
lea eax, [ebp - 0x90]
push ecx
push eax
mov edx, esi
lea ecx, [ebp - 0x94]
call fcn.0045ad90
add esp, 8
push 0
push 0
push esi
push dword [ebp - 0x94]
push ebx
push edi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb ebx, ebx
inc ebx
test ebx, ebx
jne 0x587840
jmp 0x587591
cmp esi, 0x80
jle 0x5874d9
push 1
push esi
call fcn.004d13e9
add esp, 8
mov dword [ebp - 0x94], eax
test eax, eax
je 0x58785a
jmp 0x5874e5
mov edx, dword [ebp - 0x94]
mov ebx, dword [ebp - 0x9c]
mov ecx, edx
mov byte [ebp - 4], 2
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5875a6
sub ecx, esi
push ecx
push edx
mov ecx, ebx
call fcn.00445b10
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x94]
cmp eax, ecx
je 0x5875d5
push eax
call fcn.004d108b
add esp, 4
push 0
push 0
push 0x5a
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
mov esi, eax
test esi, esi
jle 0x5877f7
push esi
lea ecx, [ebp - 0xac]
call fcn.004974a0
mov ebx, dword [ebp - 0xac]
push esi
push ebx
push 0x5a
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
test eax, eax
jle 0x5877b2
mov ecx, dword [ebp - 0x9c]
push 1
push 0x5fa9ac
call fcn.0044b980
lea eax, [ebp - 0x90]
mov dword [ebp - 0x94], eax
test ebx, ebx
jne 0x587648
xor ecx, ecx
mov dword [ebp - 0x94], ecx
jmp 0x587778
push ebx
call fcn.004d4367
inc eax
add esp, 4
mov dword [ebp - 0x98], eax
lea esi, [eax*4]
test esi, esi
js 0x587864
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x58773a
cmp esi, 0x80
jle 0x58769c
push 1
push esi
push eax
call fcn.004d4fdf
add esp, 0xc
test eax, eax
je 0x58786e
jmp 0x587751
push eax
call fcn.004d108b
add esp, 4
lea eax, [ebp - 0x90]
mov dword [ebp - 0x94], eax
push 0
push 0
push esi
mov esi, dword [ebp - 0x98]
push eax
push esi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
sete cl
mov dword [ebp - 0xa0], ecx
test eax, eax
jne 0x58776a
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x587764
push 0
push 0
push 0
push 0
push esi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov esi, eax
lea eax, [ebp - 0x90]
push ecx
push eax
mov edx, esi
lea ecx, [ebp - 0x94]
call fcn.0045ad90
add esp, 8
push 0
push 0
push esi
push dword [ebp - 0x94]
push dword [ebp - 0x98]
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb ecx, ecx
inc ecx
jmp 0x58776a
cmp esi, 0x80
jle 0x5876a5
push 1
push esi
call fcn.004d13e9
add esp, 8
mov dword [ebp - 0x94], eax
test eax, eax
je 0x587878
jmp 0x5876b1
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x587882
mov ecx, dword [ebp - 0x94]
mov edx, ecx
mov byte [ebp - 4], 3
lea esi, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x587781
sub edx, esi
push edx
push ecx
mov ecx, dword [ebp - 0x9c]
call fcn.0044b980
mov eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x90]
cmp eax, ecx
je 0x5877de
push eax
call fcn.004d108b
add esp, 4
jmp 0x5877de
push str.Fill_location_buffer
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetLocaleInfo
push 0x45
push 0x9f
push str.C:drone_src_srcCommoni18nMsgCatalog.cpp
push str.MsgCatalog::getLangCode
call fcn.00573980
add esp, 0x20
test ebx, ebx
je 0x5877f7
mov eax, dword [ebp - 0xa4]
sub eax, ebx
and eax, 0xfffffffe
push eax
push ebx
call fcn.00446620
add esp, 8
test edi, edi
je 0x587810
mov eax, dword [ebp - 0xb0]
sub eax, edi
and eax, 0xfffffffe
push eax
push edi
call fcn.00446620
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c59c5
mov esp, ebp
pop ebp
ret
push 0x80070057
call fcn.00443030
push 0x8007000e
call fcn.00443030
push ecx
mov ecx, dword [ebp - 0x94]
lea edx, [ebp - 0x90]
call fcn.0045acf0
add esp, 4
call fcn.0044f750
push 0x8007000e
call fcn.00443030
push 0x80070057
call fcn.00443030
push 0x8007000e
call fcn.00443030
push 0x8007000e
call fcn.00443030
push ecx
mov ecx, dword [ebp - 0x94]
lea edx, [ebp - 0x90]
call fcn.0045acf0
add esp, 4
call fcn.0044f750
int3