Function at 0x426ce0
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4b0
mov eax, dword [0x633754]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
mov esi, dword [ebp + 8]
push 0
push 0
push 0x7d6
mov dword [ebp - 0x434], eax
mov eax, dword [ebp + 0x10]
push esi
mov dword [ebp - 0x424], esi
mov dword [ebp - 0x448], eax
call ebx
test eax, eax
jne 0x426d4a
push 0xc36b
push 1
call fcn.004027f0
add esp, 8
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0052a352
mov esp, ebp
pop ebp
ret
push edi
xorps xmm0, xmm0
mov dword [ebp - 0x4a0], 0x14
push esi
mov dword [ebp - 0x48c], 0x42
mov dword [ebp - 0x466], 0
mov dword [ebp - 0x462], 0
mov dword [ebp - 0x45e], 0
movups xmmword [ebp - 0x45a], xmm0
call dword [sym.imp.USER32.dll_GetParent]
push 0
mov dword [ebp - 0x488], eax
mov ecx, 1
mov eax, dword [0x640194]
push 0
mov dword [ebp - 0x46a], eax
mov eax, dword [0x63955c]
push 0x85f
mov dword [ebp - 0x484], eax
mov eax, dword [0x639560]
push esi
mov dword [ebp - 0x478], 0x40100
mov dword [ebp - 0x474], 0x10001
mov dword [ebp - 0x470], 0xffff0001
mov word [ebp - 0x46c], cx
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x480], eax
call ebx
push 0
push 0
push 0x861
mov edi, eax
push esi
mov dword [ebp - 0x430], edi
call ebx
mov dword [ebp - 0x42c], eax
cmp edi, eax
jne 0x426e1c
or dword [ebp - 0x478], 4
jmp 0x426e23
or dword [ebp - 0x478], 1
lea ecx, [ebp - 0x48c]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgW]
test eax, eax
je 0x427850
mov eax, dword [ebp - 0x484]
mov ebx, dword [ebp - 0x47c]
mov esi, dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x58
mov dword [0x63955c], eax
mov eax, dword [ebp - 0x480]
push ebx
mov dword [0x639560], eax
mov dword [ebp - 0x418], ebx
call esi
push 0x5a
push ebx
mov dword [ebp - 0x414], eax
call esi
push 0x6e
push ebx
mov dword [ebp - 0x410], eax
call esi
push 0x6f
push ebx
mov dword [ebp - 0x444], eax
call esi
push 0x70
push ebx
mov dword [ebp - 0x440], eax
call esi
push 0x71
push ebx
mov dword [ebp - 0x370], eax
call esi
push 8
push ebx
mov dword [ebp - 0x36c], eax
call esi
mov ecx, dword [ebp - 0x444]
sub ecx, dword [ebp - 0x370]
push 0xa
sub ecx, eax
push ebx
mov dword [ebp - 0x368], ecx
call esi
mov ecx, dword [ebp - 0x440]
sub ecx, dword [ebp - 0x36c]
mov edi, dword [sym.imp.KERNEL32.dll_MulDiv]
sub ecx, eax
cmp dword [0x63c770], 0
mov dword [ebp - 0x364], ecx
jne 0x426f11
cmp dword [0x63c778], 0
jne 0x426f11
cmp dword [0x63c774], 0
jne 0x426f11
cmp dword [0x63c77c], 0
jne 0x426f11
movups xmm0, xmmword [ebp - 0x370]
movups xmmword [ebp - 0x380], xmm0
jmp 0x427027
push 3
lea eax, [ebp - 0xc]
push eax
push 0xd
push 0x400
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
cmp word [ebp - 0xc], 0x30
jne 0x426f73
push 0x9ec
push dword [ebp - 0x414]
push dword [0x63c770]
call edi
push 0x9ec
push dword [ebp - 0x410]
mov esi, eax
push dword [0x63c774]
call edi
push 0x9ec
push dword [ebp - 0x414]
mov dword [ebp - 0x420], eax
push dword [0x63c778]
call edi
push 0x9ec
jmp 0x426fb9
push 0x3e8
push dword [ebp - 0x414]
push dword [0x63c770]
call edi
push 0x3e8
push dword [ebp - 0x410]
mov esi, eax
push dword [0x63c774]
call edi
push 0x3e8
push dword [ebp - 0x414]
mov dword [ebp - 0x420], eax
push dword [0x63c778]
call edi
push 0x3e8
push dword [ebp - 0x410]
mov dword [ebp - 0x41c], eax
push dword [0x63c77c]
call edi
cmp dword [ebp - 0x370], esi
mov edx, eax
mov ecx, dword [ebp - 0x420]
cmovg esi, dword [ebp - 0x370]
cmp dword [ebp - 0x36c], ecx
mov dword [ebp - 0x380], esi
cmovg ecx, dword [ebp - 0x36c]
mov dword [ebp - 0x37c], ecx
mov ecx, dword [ebp - 0x41c]
cmp dword [ebp - 0x368], ecx
cmovg ecx, dword [ebp - 0x368]
cmp dword [ebp - 0x364], edx
mov dword [ebp - 0x378], ecx
cmovg edx, dword [ebp - 0x364]
mov dword [ebp - 0x374], edx
mov esi, dword [sym.imp.GDI32.dll_DPtoLP]
lea eax, [ebp - 0x380]
push 2
push eax
push ebx
call esi
push 2
lea eax, [ebp - 0x370]
push eax
push ebx
call esi
push 1
lea eax, [ebp - 0x444]
push eax
push ebx
call esi
push 0x48
push dword [ebp - 0x410]
push 8
call edi
push 0x5aaa88
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 - 0x41c], eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov esi, dword [sym.imp.GDI32.dll_GetTextMetricsW]
lea eax, [ebp - 0x3dc]
push eax
push ebx
call esi
mov eax, dword [ebp - 0x3cc]
xor ecx, ecx
add eax, dword [ebp - 0x3dc]
cmp dword [0x63c78c], 3
push 0x48
push dword [ebp - 0x410]
cmove eax, ecx
push 7
mov dword [ebp - 0x428], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
push str.Arial
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 ecx, dword [sym.imp.GDI32.dll_SelectObject]
mov edi, eax
push edi
push ebx
mov dword [ebp - 0x420], edi
call ecx
lea eax, [ebp - 0x3dc]
push eax
push ebx
call esi
mov eax, dword [ebp - 0x3cc]
add eax, dword [ebp - 0x3dc]
xor ecx, ecx
cmp dword [0x63c788], 1
mov dword [ebp - 0x498], ecx
cmove eax, ecx
mov dword [ebp - 0x494], ecx
mov dword [ebp - 0x43c], eax
mov eax, dword [ebp - 0x434]
mov dword [ebp - 0x49c], eax
lea eax, [ebp - 0x4a0]
push eax
push ebx
mov dword [ebp - 0x490], ecx
call dword [sym.imp.GDI32.dll_StartDocW]
test eax, eax
jns 0x427193
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x41c]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x427179
push eax
call esi
test edi, edi
je 0x427180
push edi
call esi
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0052a352
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x3a0]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0x100
lea eax, [ebp - 0x24c]
push eax
push 0
lea eax, [ebp - 0x3a0]
push eax
push 1
push 0x400
call dword [sym.imp.KERNEL32.dll_GetDateFormatW]
cmp dword [0x63c78c], 0
jne 0x427211
push 0x80
lea eax, [ebp - 0x34c]
push eax
push 0
lea eax, [ebp - 0x3a0]
push eax
push 2
push 0x400
call dword [sym.imp.KERNEL32.dll_GetTimeFormatW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x24c]
push 0x5aaaa0
push eax
call esi
lea eax, [ebp - 0x34c]
push eax
lea eax, [ebp - 0x24c]
push eax
call esi
mov eax, dword [0x63c784]
movaps xmm0, xmmword [0x5aaab0]
mov edi, dword [ebp - 0x424]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
movups xmmword [ebp - 0x360], xmm0
mov dword [ebp - 0x350], 4
push dword [ebp + eax*4 - 0x360]
push 0x864
push edi
call esi
push 0
push dword [0x63c780]
push 0x862
push edi
call esi
push 0
push 0
push 0x7d6
push edi
call esi
mov dword [ebp - 0x410], eax
mov esi, eax
xor eax, eax
test byte [ebp - 0x478], 1
mov dword [ebp - 0x414], eax
je 0x4272c1
mov eax, dword [ebp - 0x430]
mov ecx, dword [ebp - 0x42c]
cmp eax, ecx
jle 0x42729c
mov edx, ecx
mov dword [ebp - 0x410], eax
mov ecx, eax
jmp 0x4272a4
mov edx, eax
mov dword [ebp - 0x410], ecx
xor eax, eax
test edx, edx
cmovns eax, edx
mov dword [ebp - 0x414], eax
cmp ecx, esi
jle 0x4272c1
mov dword [ebp - 0x410], esi
mov dword [ebp - 0x414], eax
mov edx, dword [ebp - 0x370]
mov eax, dword [ebp - 0x380]
mov ecx, dword [ebp - 0x444]
sub eax, edx
mov edi, dword [ebp - 0x440]
mov esi, dword [ebp - 0x36c]
mov dword [ebp - 0x404], eax
mov eax, ecx
sub eax, dword [ebp - 0x378]
sub ecx, dword [ebp - 0x368]
sub eax, edx
mov dword [ebp - 0x3fc], eax
sub ecx, edx
mov eax, edi
mov dword [ebp - 0x40c], ebx
sub eax, dword [ebp - 0x364]
dec ecx
sub eax, esi
mov dword [ebp - 0x408], ebx
dec eax
mov dword [ebp - 0x3f4], 0
mov dword [ebp - 0x3e8], eax
mov eax, dword [ebp - 0x428]
cdq
sub eax, edx
mov dword [ebp - 0x3f0], 0
sar eax, 1
mov dword [ebp - 0x438], eax
sub eax, esi
add eax, dword [ebp - 0x428]
add eax, dword [ebp - 0x37c]
mov dword [ebp - 0x400], eax
mov eax, dword [ebp - 0x43c]
cdq
sub eax, edx
mov dword [ebp - 0x3ec], ecx
sar eax, 1
sub edi, eax
mov dword [ebp - 0x42c], eax
sub edi, dword [ebp - 0x43c]
sub edi, dword [ebp - 0x374]
sub edi, esi
mov esi, 1
mov dword [ebp - 0x3f8], edi
mov edi, dword [ebp - 0x414]
mov dword [ebp - 0x430], esi
cmp edi, dword [ebp - 0x410]
jge 0x4277f5
mov edx, dword [sym.imp.USER32.dll_wsprintfW]
mov cx, word [ebp - 0x472]
mov al, byte [ebp - 0x478]
test al, 2
je 0x427412
movzx eax, word [ebp - 0x474]
cmp esi, eax
jl 0x4273c9
movzx eax, cx
cmp esi, eax
jle 0x427412
push esi
push dword [ebp - 0x448]
lea eax, [ebp - 0x4c]
push eax
call edx
mov eax, dword [ebp - 0x410]
add esp, 0xc
mov dword [ebp - 0x3e0], eax
lea eax, [ebp - 0x40c]
mov dword [ebp - 0x3e4], edi
push eax
push 0
push 0x867
push dword [ebp - 0x424]
call dword [sym.imp.USER32.dll_SendMessageW]
mov edi, eax
mov dword [ebp - 0x414], edi
jmp 0x4277be
push esi
push dword [ebp - 0x448]
lea eax, [ebp - 0x4c]
push eax
call edx
call fcn.00413e50
push esi
call fcn.00426c60
add esp, 0x10
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 - 0x41c]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
call esi
push 8
push ebx
call dword [sym.imp.GDI32.dll_SetTextAlign]
mov edx, dword [ebp - 0x400]
sub edx, dword [ebp - 0x438]
mov ecx, dword [ebp - 0x404]
mov dword [ebp - 0x390], ecx
mov ecx, edx
sub ecx, dword [ebp - 0x428]
mov dword [ebp - 0xc], eax
mov eax, dword [0x63c78c]
mov dword [ebp - 0x38c], ecx
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x384], edx
cmp eax, 3
jge 0x4274e7
push 0
push dword [ebp - 0x434]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push dword [ebp - 0x434]
lea eax, [ebp - 0x390]
push eax
mov eax, dword [ebp - 0x400]
sub eax, dword [ebp - 0x438]
push 0
push eax
mov eax, dword [ebp - 0x404]
add eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x63c78c]
test eax, eax
je 0x4274f0
cmp eax, 1
jne 0x427565
push dword [ebp - 0x420]
push ebx
call esi
lea eax, [ebp - 0x4a8]
push eax
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x24c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
push 0
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x24c]
push eax
lea eax, [ebp - 0x390]
push eax
mov eax, dword [ebp - 0x400]
sub eax, dword [ebp - 0x438]
push 0
push eax
mov eax, dword [ebp - 0x3fc]
sub eax, dword [ebp - 0x4a8]
sub eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [0x63c78c]
cmp eax, 3
jge 0x427625
push dword [ebp - 0xc]
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 - 0x418]
call esi
mov ecx, dword [ebp - 0x400]
mov edi, eax
mov eax, dword [ebp - 0x428]
cdq
and edx, 3
push 0
lea esi, [edx + eax]
sar esi, 2
sub ecx, esi
push ecx
push dword [ebp - 0x404]
push dword [ebp - 0x418]
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 0x400]
sub eax, esi
mov esi, dword [ebp - 0x418]
push eax
push dword [ebp - 0x3fc]
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push edi
push esi
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
call esi
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x414]
mov dword [ebp - 0x3e4], eax
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x3e0], eax
lea eax, [ebp - 0x40c]
push eax
push 1
push 0x867
push dword [ebp - 0x424]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ebx, dword [ebp - 0x418]
jmp 0x427651
mov eax, dword [ebp - 0x410]
mov dword [ebp - 0x3e0], eax
lea eax, [ebp - 0x40c]
push eax
push 1
push 0x867
push dword [ebp - 0x424]
mov dword [ebp - 0x3e4], edi
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push ebx
mov dword [ebp - 0x414], eax
call dword [sym.imp.GDI32.dll_SetTextColor]
push 0xffffff
push ebx
call dword [sym.imp.GDI32.dll_SetBkColor]
push dword [ebp - 0x420]
push ebx
call esi
mov edi, dword [sym.imp.GDI32.dll_SetTextAlign]
push 0
push ebx
call edi
mov ecx, dword [ebp - 0x404]
mov esi, eax
mov edx, dword [ebp - 0x42c]
add edx, dword [ebp - 0x3f8]
mov dword [ebp - 0x35c], ecx
mov ecx, dword [ebp - 0x3fc]
mov dword [ebp - 0x354], ecx
mov ecx, dword [ebp - 0x43c]
add ecx, edx
mov dword [ebp - 0x358], edx
cmp dword [0x63c788], 0
mov dword [ebp - 0x350], ecx
jne 0x4277ab
lea eax, [ebp - 0x4b0]
push eax
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x4c]
push eax
push ebx
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
push 0
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x35c]
push eax
mov eax, dword [ebp - 0x3f8]
add eax, dword [ebp - 0x42c]
push 0
push eax
mov eax, dword [ebp - 0x3fc]
sub eax, dword [ebp - 0x4b0]
sub eax, 5
push eax
push ebx
call dword [sym.imp.GDI32.dll_ExtTextOutW]
push esi
push ebx
call edi
push 0
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov esi, dword [ebp - 0x418]
mov ebx, eax
mov ecx, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
push esi
call ecx
push 0
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_SetBkColor]
mov eax, dword [ebp - 0x43c]
mov esi, eax
test esi, esi
jns 0x42775e
add esi, 3
sar esi, 2
mov ecx, dword [ebp - 0x3f8]
push 0
add ecx, esi
push ecx
push dword [ebp - 0x404]
push dword [ebp - 0x418]
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 0x3f8]
add eax, esi
mov esi, dword [ebp - 0x418]
push eax
push dword [ebp - 0x3fc]
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 - 0x430]
mov edi, dword [ebp - 0x414]
mov al, byte [ebp - 0x478]
inc esi
mov cx, word [ebp - 0x472]
mov dword [ebp - 0x430], esi
test al, 2
je 0x4277e3
movzx eax, cx
cmp esi, eax
jg 0x4277f5
mov al, byte [ebp - 0x478]
mov edx, dword [sym.imp.USER32.dll_wsprintfW]
cmp edi, dword [ebp - 0x410]
jl 0x4273b3
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0x867
push dword [ebp - 0x424]
call esi
push ebx
call dword [sym.imp.GDI32.dll_EndDoc]
push ebx
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x41c]
mov ebx, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x42782d
push eax
call ebx
mov eax, dword [ebp - 0x420]
test eax, eax
je 0x42783a
push eax
call ebx
push 0
push 0
push 0x409
push dword [0x640184]
call esi
call fcn.00413e70
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0052a352
mov esp, ebp
pop ebp
ret