Function at 0x488eb0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x508
mov eax, dword [0x5bd344]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
push edi
mov edi, dword [0x5e9fbc]
push 0
push 0
push 0x7d6
push edi
mov dword [ebp - 0x47c], edx
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x488], edi
call ebx
test eax, eax
jne 0x488f0b
push 0xc36b
push 1
call fcn.00458d80
add esp, 8
jmp 0x489a44
xorps xmm0, xmm0
mov dword [ebp - 0x4f8], 0x14
push edi
mov dword [ebp - 0x4e4], 0x42
mov dword [ebp - 0x4be], 0
mov dword [ebp - 0x4ba], 0
mov dword [ebp - 0x4b6], 0
movups xmmword [ebp - 0x4b2], xmm0
call dword [sym.imp.USER32.dll_GetParent]
push 0
mov dword [ebp - 0x4e0], eax
mov ecx, 1
mov eax, dword [0x5f0394]
push 0
mov dword [ebp - 0x4c2], eax
mov eax, dword [0x5eafe0]
push 0x85f
mov dword [ebp - 0x4dc], eax
mov eax, dword [0x5eafe4]
push edi
mov dword [ebp - 0x4d0], 0x40100
mov dword [ebp - 0x4cc], 0x10001
mov dword [ebp - 0x4c8], 0xffff0001
mov word [ebp - 0x4c4], cx
mov dword [ebp - 0x4d4], 0
mov dword [ebp - 0x4d8], eax
call ebx
push 0
push 0
push 0x861
mov esi, eax
push edi
mov dword [ebp - 0x478], esi
call ebx
mov dword [ebp - 0x474], eax
cmp esi, eax
jne 0x488fdc
or dword [ebp - 0x4d0], 4
jmp 0x488fe3
or dword [ebp - 0x4d0], 1
lea ecx, [ebp - 0x4e4]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgW]
test eax, eax
je 0x489a44
mov eax, dword [ebp - 0x4dc]
mov ebx, dword [ebp - 0x4d4]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
mov dword [0x5eafe0], eax
mov eax, dword [ebp - 0x4d8]
push ebx
mov dword [0x5eafe4], eax
mov dword [ebp - 0x460], ebx
call esi
push 0x5a
push ebx
mov dword [ebp - 0x45c], eax
call esi
push 0x6e
push ebx
mov dword [ebp - 0x458], eax
call esi
push 0x6f
push ebx
mov dword [ebp - 0x490], eax
call esi
push 0x70
push ebx
mov dword [ebp - 0x48c], eax
call esi
push 0x71
push ebx
mov dword [ebp - 0x3b8], eax
call esi
push 8
push ebx
mov dword [ebp - 0x3b4], eax
call esi
mov ecx, dword [ebp - 0x490]
sub ecx, dword [ebp - 0x3b8]
push 0xa
sub ecx, eax
push ebx
mov dword [ebp - 0x3b0], ecx
call esi
mov ecx, dword [ebp - 0x48c]
sub ecx, dword [ebp - 0x3b4]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
sub ecx, eax
cmp dword [0x5f02d0], 0
mov dword [ebp - 0x3ac], ecx
jne 0x4890d1
cmp dword [0x5f02d8], 0
jne 0x4890d1
cmp dword [0x5f02d4], 0
jne 0x4890d1
cmp dword [0x5f02dc], 0
jne 0x4890d1
movups xmm0, xmmword [ebp - 0x3b8]
movups xmmword [ebp - 0x3c8], xmm0
jmp 0x4891e7
push 3
lea eax, [ebp - 0x10]
push eax
push 0xd
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp word [ebp - 0x10], 0x30
jne 0x489133
push 0x9ec
push dword [ebp - 0x45c]
push dword [0x5f02d0]
call edi
push 0x9ec
push dword [ebp - 0x458]
mov esi, eax
push dword [0x5f02d4]
call edi
push 0x9ec
push dword [ebp - 0x45c]
mov dword [ebp - 0x468], eax
push dword [0x5f02d8]
call edi
push 0x9ec
jmp 0x489179
push 0x3e8
push dword [ebp - 0x45c]
push dword [0x5f02d0]
call edi
push 0x3e8
push dword [ebp - 0x458]
mov esi, eax
push dword [0x5f02d4]
call edi
push 0x3e8
push dword [ebp - 0x45c]
mov dword [ebp - 0x468], eax
push dword [0x5f02d8]
call edi
push 0x3e8
push dword [ebp - 0x458]
mov dword [ebp - 0x464], eax
push dword [0x5f02dc]
call edi
cmp dword [ebp - 0x3b8], esi
mov edx, eax
mov ecx, dword [ebp - 0x468]
cmovg esi, dword [ebp - 0x3b8]
cmp dword [ebp - 0x3b4], ecx
mov dword [ebp - 0x3c8], esi
cmovg ecx, dword [ebp - 0x3b4]
mov dword [ebp - 0x3c4], ecx
mov ecx, dword [ebp - 0x464]
cmp dword [ebp - 0x3b0], ecx
cmovg ecx, dword [ebp - 0x3b0]
cmp dword [ebp - 0x3ac], edx
mov dword [ebp - 0x3c0], ecx
cmovg edx, dword [ebp - 0x3ac]
mov dword [ebp - 0x3bc], edx
mov esi, dword [sym.imp.GDI32.dll_DPtoLP]
lea eax, [ebp - 0x3c8]
push 2
push eax
push ebx
call esi
push 2
lea eax, [ebp - 0x3b8]
push eax
push ebx
call esi
push 1
lea eax, [ebp - 0x490]
push eax
push ebx
call esi
push 0x48
push dword [ebp - 0x458]
push 8
call edi
push 0x420cfc
push 0
push 0
mov edi, dword [sym.imp.GDI32.dll_CreateFontW]
push 0
push 0
push 0
push 0
push 0
push 0
push 0x2bc
push 0
push 0
push 0
push eax
call edi
push eax
push ebx
mov dword [ebp - 0x464], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [sym.imp.GDI32.dll_GetTextMetricsW]
lea eax, [ebp - 0x424]
push eax
push ebx
call esi
mov eax, dword [ebp - 0x414]
xor ecx, ecx
add eax, dword [ebp - 0x424]
cmp dword [0x5ed288], 3
push 0x48
push dword [ebp - 0x458]
cmove eax, ecx
push 7
mov dword [ebp - 0x46c], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 0x420cfc
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0x190
push 0
push 0
push 0
push eax
call edi
mov edi, eax
push edi
push ebx
mov dword [ebp - 0x468], edi
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [ebp - 0x424]
push eax
push ebx
call esi
mov eax, dword [ebp - 0x414]
add eax, dword [ebp - 0x424]
xor ecx, ecx
cmp dword [0x5ed3c8], 1
mov dword [ebp - 0x4f0], ecx
cmove eax, ecx
mov dword [ebp - 0x4ec], ecx
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x47c]
mov dword [ebp - 0x4f4], eax
lea eax, [ebp - 0x4f8]
push eax
push ebx
mov dword [ebp - 0x4e8], ecx
call dword [sym.imp.GDI32.dll_StartDocW]
test eax, eax
jns 0x489351
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x464]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x489337
push eax
call esi
test edi, edi
je 0x48933e
push edi
call esi
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0057e93d
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3e8]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x100
lea eax, [ebp - 0x294]
push eax
push 0
lea eax, [ebp - 0x3e8]
push eax
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
cmp dword [0x5ed288], 0
jne 0x4893cf
push 0x80
lea eax, [ebp - 0x394]
push eax
push 0
lea eax, [ebp - 0x3e8]
push eax
push 2
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x294]
push 0x41bd94
push eax
call esi
lea eax, [ebp - 0x394]
push eax
lea eax, [ebp - 0x294]
push eax
call esi
mov eax, dword [0x5ed5f8]
movaps xmm0, xmmword [0x44de30]
mov edi, dword [ebp - 0x488]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
movups xmmword [ebp - 0x3a8], xmm0
mov dword [ebp - 0x398], 4
push dword [ebp + eax*4 - 0x3a8]
push 0x864
push edi
call esi
push 0
push dword [0x5f02c0]
push 0x862
push edi
call esi
push 0
push 0
push 0x7d6
push edi
call esi
test byte [ebp - 0x4d0], 1
mov esi, eax
mov dword [ebp - 0x45c], eax
mov dword [ebp - 0x458], 0
je 0x489481
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x474]
cmp eax, ecx
jle 0x48945c
mov edx, ecx
mov dword [ebp - 0x45c], eax
mov ecx, eax
jmp 0x489464
mov edx, eax
mov dword [ebp - 0x45c], ecx
xor eax, eax
test edx, edx
cmovns eax, edx
mov dword [ebp - 0x458], eax
cmp ecx, esi
jle 0x489481
mov dword [ebp - 0x45c], esi
mov dword [ebp - 0x458], eax
mov edx, dword [ebp - 0x3b8]
mov eax, dword [ebp - 0x3c8]
mov ecx, dword [ebp - 0x490]
sub eax, edx
mov edi, dword [ebp - 0x48c]
mov esi, dword [ebp - 0x3b4]
mov dword [ebp - 0x44c], eax
mov eax, ecx
sub eax, dword [ebp - 0x3c0]
sub ecx, dword [ebp - 0x3b0]
sub eax, edx
mov dword [ebp - 0x444], eax
sub ecx, edx
mov eax, edi
mov dword [ebp - 0x454], ebx
sub eax, dword [ebp - 0x3ac]
dec ecx
sub eax, esi
mov dword [ebp - 0x434], ecx
dec eax
mov dword [ebp - 0x450], ebx
mov dword [ebp - 0x430], eax
mov eax, dword [ebp - 0x46c]
cdq
sub eax, edx
mov dword [ebp - 0x43c], 0
sar eax, 1
mov dword [ebp - 0x480], eax
sub eax, esi
add eax, dword [ebp - 0x46c]
add eax, dword [ebp - 0x3c4]
mov dword [ebp - 0x448], eax
mov eax, dword [ebp - 0x470]
cdq
sub eax, edx
mov dword [ebp - 0x438], 0
mov ecx, eax
sar ecx, 1
sub edi, ecx
mov dword [ebp - 0x478], ecx
sub edi, dword [ebp - 0x470]
sub edi, dword [ebp - 0x3bc]
sub edi, esi
mov esi, 1
mov dword [ebp - 0x440], edi
mov edi, dword [ebp - 0x45c]
cmp dword [ebp - 0x458], edi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
mov dword [ebp - 0x484], esi
jge 0x4899ef
mov cx, word [ebp - 0x4ca]
mov al, byte [ebp - 0x4d0]
mov dword [ebp - 0x10], esi
test al, 2
je 0x489592
movzx eax, word [ebp - 0x4cc]
cmp esi, eax
jl 0x48958e
movzx eax, cx
cmp esi, eax
jle 0x489592
xor edi, edi
jmp 0x489597
mov edi, 1
push esi
push dword [ebp - 0x494]
lea eax, [ebp - 0x54]
mov dword [ebp - 0x474], edi
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
test edi, edi
je 0x489809
push 0
push 4
push 0x952
push dword [0x5e9fbc]
call dword [sym.imp.USER32.dll_SendMessageW]
push esi
push 0x271b
lea eax, [ebp - 0x94]
push 0x20
push eax
call fcn.00474220
add esp, 0x10
lea eax, [ebp - 0x94]
push eax
push 0x1ff
push 0x40b
push dword [0x5eca44]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 1
push 0x409
push dword [0x5eca44]
call dword [sym.imp.USER32.dll_SendMessageW]
push 1
push 0
push dword [0x5eca44]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x5eca44]
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
call dword [sym.imp.GDI32.dll_StartPage]
push 0
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
push dword [ebp - 0x464]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
push 8
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x448]
sub edx, dword [ebp - 0x480]
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x3d8], ecx
mov ecx, edx
sub ecx, dword [ebp - 0x46c]
mov dword [ebp - 0x498], eax
mov eax, dword [0x5ed288]
mov dword [ebp - 0x3d4], ecx
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0x3d0], ecx
mov dword [ebp - 0x3cc], edx
cmp eax, 3
jge 0x4896ee
push 0
push dword [ebp - 0x47c]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push dword [ebp - 0x47c]
lea eax, [ebp - 0x3d8]
push eax
mov eax, dword [ebp - 0x448]
sub eax, dword [ebp - 0x480]
push 0
push eax
mov eax, dword [ebp - 0x44c]
add eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x5ed288]
test eax, eax
je 0x4896f7
cmp eax, 1
jne 0x489770
push dword [ebp - 0x468]
push ebx
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [ebp - 0x500]
push eax
lea eax, [ebp - 0x294]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x294]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
push 0
lea eax, [ebp - 0x294]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x3d8]
push eax
mov eax, dword [ebp - 0x448]
sub eax, dword [ebp - 0x480]
push 0
push eax
mov eax, dword [ebp - 0x444]
sub eax, dword [ebp - 0x500]
sub eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x5ed288]
cmp eax, 3
jge 0x489809
push dword [ebp - 0x498]
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 0
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov ebx, eax
push ebx
push dword [ebp - 0x460]
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [ebp - 0x448]
mov edi, eax
mov eax, dword [ebp - 0x46c]
cdq
and edx, 3
push 0
lea esi, [edx + eax]
sar esi, 2
sub ecx, esi
push ecx
push dword [ebp - 0x44c]
push dword [ebp - 0x460]
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 0x448]
sub eax, esi
mov esi, dword [ebp - 0x460]
push eax
push dword [ebp - 0x444]
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov edi, dword [ebp - 0x474]
mov ebx, esi
mov esi, dword [ebp - 0x484]
mov eax, dword [ebp - 0x458]
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp - 0x45c]
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x454]
push eax
push edi
push 0x867
push dword [ebp - 0x488]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, eax
mov dword [ebp - 0x458], edx
test edi, edi
je 0x4899b7
push 0
push ebx
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
push dword [ebp - 0x468]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call edi
push 0
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x440]
mov esi, eax
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x44c]
mov dword [ebp - 0x3a4], ecx
lea ecx, [eax + edx]
mov dword [ebp - 0x3a0], ecx
mov ecx, dword [ebp - 0x444]
mov dword [ebp - 0x39c], ecx
lea ecx, [eax + edx]
add ecx, dword [ebp - 0x470]
cmp dword [0x5ed3c8], 0
mov dword [ebp - 0x398], ecx
jne 0x4899a4
lea eax, [ebp - 0x508]
push eax
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
push 0
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x3a4]
push eax
mov eax, dword [ebp - 0x440]
add eax, dword [ebp - 0x478]
push 0
push eax
mov eax, dword [ebp - 0x444]
sub eax, dword [ebp - 0x508]
sub eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push esi
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
push 0
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov esi, dword [ebp - 0x460]
mov ebx, eax
push ebx
push esi
call edi
push 0
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebp - 0x470]
mov esi, eax
test esi, esi
jns 0x489957
add esi, 3
sar esi, 2
mov ecx, dword [ebp - 0x440]
push 0
add ecx, esi
push ecx
push dword [ebp - 0x44c]
push dword [ebp - 0x460]
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 0x440]
add eax, esi
mov esi, dword [ebp - 0x460]
push eax
push dword [ebp - 0x444]
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, esi
push ebx
call dword [sym.imp.GDI32.dll_EndPage]
mov esi, dword [ebp - 0x484]
mov edx, dword [ebp - 0x458]
mov al, byte [ebp - 0x4d0]
inc esi
mov cx, word [ebp - 0x4ca]
mov dword [ebp - 0x484], esi
test al, 2
je 0x4899dd
movzx eax, cx
cmp dword [ebp - 0x10], eax
jge 0x4899e9
mov al, byte [ebp - 0x4d0]
cmp edx, dword [ebp - 0x45c]
jl 0x489575
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x867
push dword [ebp - 0x488]
call esi
push ebx
call dword [sym.imp.GDI32.dll_EndDoc]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x464]
test eax, eax
je 0x489a21
push eax
call edi
mov eax, dword [ebp - 0x468]
test eax, eax
je 0x489a2e
push eax
call edi
push 0
push 0
push 0x409
push dword [0x5eca44]
call esi
call fcn.004666f0
mov ecx, dword [ebp - 8]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057e93d
mov esp, ebp
pop ebp
ret