Function at 0x455c50
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54f948
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x50
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
mov ebx, ecx
mov dword [ebp - 0x10], esp
push 0
push 0
mov eax, dword [ebx + 0x368]
push 0xf0
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 4], 0
call edi
mov ecx, dword [ebx + 0x32c]
push 0
push 0
push 0xf0
push ecx
mov esi, eax
call edi
test esi, esi
mov dword [ebp - 0x30], eax
je 0x455d02
xor esi, esi
cmp esi, dword [ebx + 0x6c]
jge 0x456078
mov eax, dword [ebx + 0x68]
lea edx, [esi + esi*2]
shl edx, 4
mov ecx, dword [eax + edx + 0x10]
test ecx, ecx
jne 0x455cff
mov edx, dword [ebx + 0x41c]
lea ecx, [ebp - 0x5c]
push ecx
push 0xffffffffffffffff
push 0x100d
push edx
mov dword [ebp - 0x5c], 1
mov dword [ebp - 0x54], esi
call edi
test eax, eax
jl 0x455cff
push 0
push eax
mov eax, dword [ebx + 0x41c]
push 0x1008
push eax
call edi
inc esi
jmp 0x455cb2
xor edi, edi
mov eax, dword [ebx + 0x6c]
mov dword [ebp - 0x24], edi
cmp edi, eax
jge 0x456065
mov edx, dword [ebx + 0x68]
lea ecx, [edi + edi*2]
shl ecx, 4
lea eax, [ecx + edx]
mov ecx, dword [ecx + edx + 0x10]
test ecx, ecx
jne 0x45605f
mov ecx, dword [eax + 0x1c]
test ecx, ecx
jne 0x455d3c
mov ecx, dword [ebp - 0x30]
test ecx, ecx
jne 0x45605f
mov ecx, dword [0x5b5ecc]
mov dword [ebp - 0x18], ecx
mov esi, dword [eax + 8]
lea edx, [ebp - 0x18]
push 0
push edx
lea ecx, [esi + 0x20]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1c], esi
call fcn.004e1180
mov eax, dword [esi + 0x54]
test eax, eax
je 0x455d73
push 0x5c
push eax
call fcn.0051c7b0
add esp, 8
test eax, eax
jne 0x455d82
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.00537b04
inc edi
jmp 0x455d04
push 0
push 0
inc eax
push 0
push 0
lea esi, [ebx + 0x400]
push eax
push edi
push 1
mov ecx, esi
call fcn.00531c86
mov edi, eax
cmp edi, 0xffffffff
mov dword [ebp - 0x38], edi
jle 0x456050
mov eax, dword [ebp - 0x24]
mov ecx, esi
push eax
push 0
push 0
push 0
push 0
push 4
push 0
push edi
call fcn.00531d08
mov ecx, dword [ebp - 0x18]
push ecx
push 3
push edi
mov ecx, esi
call fcn.00531d81
mov edx, dword [ebp - 0x1c]
mov eax, dword [edx + 0x58]
test eax, eax
je 0x455de5
push eax
push 5
push edi
mov ecx, esi
call fcn.00531d81
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + 0x54]
push ecx
lea ecx, [ebp - 0x20]
call fcn.00537b72
mov eax, dword [0x5ba8c0]
mov byte [ebp - 4], 2
test eax, eax
je 0x455e16
mov edx, dword [0x5ba790]
mov eax, dword [0x5ba794]
push edx
push eax
lea ecx, [ebp - 0x20]
call fcn.0053031b
mov ecx, dword [ebp - 0x20]
push ecx
push 4
push edi
mov ecx, esi
call fcn.00531d81
mov eax, dword [ebp - 0x1c]
mov edi, dword [eax + 0x414]
mov esi, dword [eax + 0x410]
test edi, edi
jl 0x456044
jg 0x455e45
test esi, esi
jbe 0x456044
mov dword [ebp - 0x3c], 0x55f220
push 0
push 0x400
push edi
push esi
mov byte [ebp - 4], 3
call fcn.0051e2c0
mov dword [ebp - 0x1c], eax
mov ecx, esi
cdq
mov dword [ebp - 0x44], eax
sub ecx, eax
mov eax, edi
push 0
sbb eax, edx
push 0x400
push eax
push ecx
mov dword [ebp - 0x40], edx
call fcn.0051e210
mov ebx, eax
and ebx, 0x800003ff
jns 0x455e90
dec ebx
or ebx, 0xfffffc00
inc ebx
mov eax, ebx
mov ecx, esi
shl eax, 0xa
cdq
sub ecx, eax
mov eax, edi
sbb eax, edx
mov edx, dword [ebp - 0x44]
sub ecx, edx
mov edx, dword [ebp - 0x40]
sbb eax, edx
push 0
push 0x100000
push eax
push ecx
call fcn.0051e210
and eax, 0x800003ff
jns 0x455ec4
dec eax
or eax, 0xfffffc00
inc eax
push 0
push 0x40000000
push edi
push esi
mov dword [ebp - 0x28], eax
call fcn.0051e210
lea ecx, [ebp - 0x14]
push 3
push ecx
mov edi, eax
push 0xe
push 0x400
mov dword [ebp - 0x34], edi
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test eax, eax
jne 0x455f17
mov edi, 0x59a5b0
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp - 0x14]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebp - 0x34]
mov esi, dword [ebp - 0x28]
test edi, edi
jne 0x455fe0
cmp esi, 0x3e7
jg 0x455fe0
test esi, esi
jne 0x455f9e
cmp ebx, 0x3e7
jg 0x455f9e
test ebx, ebx
je 0x455f7e
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov edx, dword [0x5bafd8]
mov ecx, eax
mov eax, 0x66666667
sar ecx, 0xa
push edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ebp - 0x14]
shr eax, 0x1f
add edx, eax
push edx
push ecx
push ebx
jmp 0x456018
mov eax, dword [0x5bafd4]
mov ecx, dword [ebp - 0x1c]
push eax
push ecx
lea edx, [ebp - 0x58]
push str._d___s
push edx
call fcn.0051d0e8
add esp, 0x10
jmp 0x456029
lea ebx, [ebx + ebx*4]
lea eax, [ebx + ebx*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov ecx, eax
mov eax, dword [0x5bafdc]
push eax
mov eax, 0x66666667
sar ecx, 0xa
imul ecx
sar edx, 2
mov ecx, edx
lea eax, [ebp - 0x58]
shr ecx, 0x1f
add edx, ecx
push edx
lea edx, [ebp - 0x14]
push edx
push esi
push str._d_s_02d___s
push eax
jmp 0x456021
lea eax, [esi + esi*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
cdq
and edx, 0x3ff
add eax, edx
mov edx, dword [0x5bafe0]
mov ecx, eax
mov eax, 0x66666667
sar ecx, 0xa
push edx
imul ecx
sar edx, 2
mov eax, edx
lea ecx, [ebp - 0x14]
shr eax, 0x1f
add edx, eax
push edx
push ecx
push edi
lea edx, [ebp - 0x58]
push str._d_s_02d___s
push edx
call fcn.0051d0e8
add esp, 0x18
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x58]
push eax
push 2
push ecx
lea ecx, [edx + 0x400]
call fcn.00531d81
mov ebx, dword [ebp - 0x2c]
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.00537b04
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 0
call fcn.00537b04
mov edi, dword [ebp - 0x24]
inc edi
jmp 0x455d04
push 0
push 0
push 0
push 0xfffffffffffffffe
push ebx
push 0x453010
call fcn.00538218
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret