Function at 0x34b37db80
Capabilities:
Get geographical location

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x5a8
mov qword [rsp + 0x5f0], rcx
mov rsi, r9
cmp edx, 0x110
je 0x34b37dbd8
cmp edx, 0x111
je 0x34b37e5b0
cmp edx, 0x4e
je 0x34b37e548
xor eax, eax
add rsp, 0x5a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15, qword [r9]
mov rdi, qword [sym.imp.user32.dll_GetDlgItem]
mov edx, 0xbb9
mov rcx, qword [rsp + 0x5f0]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x68], rdi
call rdi
mov r8d, 0x50
xor edx, edx
mov r14, rax
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
mov rax, qword [sym.imp.kernel32.dll_HeapAlloc]
mov qword [rsp + 0x58], rax
call rax
mov rbx, rax
test rax, rax
je 0x34b37dbbb
lea r9, [rsi + 8]
mov r8d, 5
mov qword [rax], r9
mov edx, dword [r15 + 0x20]
mov eax, 4
mov r9d, 2
mov ecx, edx
and ecx, 1
sub eax, ecx
mov ecx, edx
shr ecx, 1
and ecx, 1
sub eax, ecx
mov ecx, edx
shr edx, 3
shr ecx, 2
and edx, 1
and ecx, 1
sub eax, ecx
mov ecx, 0x10
sub eax, edx
mov edx, 0x10
mov dword [rbx + 8], eax
mov dword [rsp + 0x20], 0
call qword [sym.imp.comctl32.dll_ImageList_Create]
mov r13, qword [sym.imp.user32.dll_SendMessageW]
mov qword [rbx + 0x10], rax
test rax, rax
je 0x34b37dcfd
mov rcx, qword [0x34b393008]
mov edx, 0xc8
call qword [sym.imp.user32.dll_LoadBitmapW]
mov r8d, 0xff00ff
mov rcx, qword [rbx + 0x10]
mov r12, rax
mov rdx, rax
call qword [sym.imp.comctl32.dll_ImageList_AddMasked]
mov rcx, r12
call qword [sym.imp.gdi32.dll_DeleteObject]
mov rcx, qword [rbx + 0x10]
mov edx, 0xffffffff
call qword [sym.imp.comctl32.dll_ImageList_SetBkColor]
mov rsi, qword [rbx + 0x10]
mov edx, 0xbb9
mov rcx, qword [rsp + 0x5f0]
call rdi
mov r8d, 1
mov edx, 0x1003
mov rcx, rax
mov r9, rsi
call r13
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x5f0]
mov r8, rbx
mov edx, 0x10
mov rax, qword [rsi + 0x18]
mov qword [rbx + 0x18], rax
mov eax, dword [rsi + 0x58]
mov dword [rbx + 0x20], eax
mov rax, qword [rsi + 0x60]
mov qword [rbx + 0x28], rax
mov eax, dword [rsi + 0x68]
mov dword [rbx + 0x30], eax
mov rax, qword [rsi + 0x70]
mov qword [rbx + 0x38], rax
mov rax, qword [rsi + 0x38]
mov qword [rbx + 0x40], rax
mov rax, qword [rsi + 0x40]
mov qword [rbx + 0x48], rax
call qword [sym.imp.user32.dll_SetWindowLongPtrW]
mov r9, qword [rsi + 0x18]
test r9, r9
je 0x34b37dd68
mov rcx, qword [rsp + 0x5f0]
xor r8d, r8d
mov edx, 0xc
call r13
mov rax, qword [rsp + 0x50]
mov rbx, qword [rax + 0x28]
test rbx, rbx
je 0x34b37dd9b
mov rcx, qword [rsp + 0x5f0]
mov edx, 0xbb8
mov rax, qword [rsp + 0x68]
call rax
mov r9, rbx
xor r8d, r8d
mov edx, 0xc
mov rcx, rax
call r13
mov rax, qword [rsp + 0x50]
mov r9d, 0x20
xor r8d, r8d
xor edi, edi
mov edx, 0x1036
mov rcx, r14
mov ebx, dword [rax + 0x20]
call r13
lea rax, [rsp + 0x1a0]
mov dword [rsp + 0x100], 6
mov dword [rsp + 0x108], 0x5a
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x110], rax
test bl, 1
je 0x34b37e803
test bl, 2
je 0x34b37e7c6
test bl, 4
je 0x34b37e789
test bl, 8
je 0x34b37e74c
test bl, 0x20
je 0x34b37e70f
and ebx, 0x10
je 0x34b37e6d7
mov rax, qword [rsp + 0x50]
mov ebx, dword [rax + 0x48]
test ebx, ebx
je 0x34b37e23e
mov dword [rsp + 0x4c], 0
nop word [rax + rax]
mov rdi, qword [rsp + 0x50]
mov esi, dword [rsp + 0x4c]
mov dword [rsp + 0x48], 0
xor r12d, r12d
mov rax, qword [rdi + 0x40]
mov rdx, qword [rdi + 0x50]
mov ebx, dword [rdi + 0x20]
mov qword [rsp + 0x38], rax
mov rax, qword [rdi + 0x30]
mov qword [rsp + 0x30], rax
mov eax, esi
inc esi
mov rdi, qword [rdx + rax*8]
mov dword [rsp + 0x78], 0
mov dword [rsp + 0x4c], esi
xor esi, esi
nop dword [rax + rax]
mov rdx, r12
mov rcx, rdi
call qword [sym.imp.crypt32.dll_CertEnumCertificatesInStore]
mov r12, rax
test rax, rax
je 0x34b37e210
cmp qword [rsp + 0x30], 0
je 0x34b37deb8
mov rcx, rax
mov r8, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
lea rdx, [rsp + 0x78]
call rax
test eax, eax
je 0x34b37de80
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1004
mov rcx, r14
mov dword [rsp + 0xa0], 7
call r13
mov rcx, r12
mov dword [rsp + 0xa8], 0
mov dword [rsp + 0xa4], eax
mov dword [rsp + 0xc4], 0
call qword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov r11d, dword [rsp + 0xa4]
mov qword [rsp + 0xc8], rax
test r11d, r11d
jne 0x34b37df29
movabs rax, 0xffffffff00000002
or dword [rsp + 0xa0], 8
mov qword [rsp + 0xac], rax
test bl, 1
je 0x34b37e158
test bl, 2
je 0x34b37e1b2
test bl, 4
je 0x34b37e0d0
test bl, 8
je 0x34b37e078
test bl, 0x20
je 0x34b37dfc8
test bl, 0x10
jne 0x34b37de80
mov eax, dword [section..bss]
lea edx, [rax + 1]
mov dword [section..bss], edx
test eax, eax
jne 0x34b37df7b
test byte [0x34b383240], 1
jne 0x34b37e520
mov r9d, 0x50
mov r8, qword [rsp + 0x40]
mov edx, 0x578
mov rcx, qword [0x34b393008]
call qword [sym.imp.user32.dll_LoadStringW]
mov eax, dword [rsp + 0xa8]
lea r9, [rsp + 0xa0]
test eax, eax
jne 0x34b37e290
xor r8d, r8d
mov edx, 0x104d
mov rcx, r14
call r13
jmp 0x34b37de80
mov r9d, 0x50
mov edx, 0x1f
lea r15, [rsp + 0x100]
mov ecx, 0x800
mov r8, r15
lea rbp, [rsp + 0x90]
call qword [sym.imp.kernel32.dll_GetLocaleInfoW]
mov rax, qword [r12 + 0x18]
mov rdx, rbp
lea rcx, [rax + 0x48]
call qword [sym.imp.kernel32.dll_FileTimeToSystemTime]
mov rax, qword [rsp + 0x40]
mov r9, r15
xor edx, edx
mov dword [rsp + 0x28], 0x50
mov r8, rbp
mov ecx, 0x800
mov qword [rsp + 0x20], rax
call qword [sym.imp.kernel32.dll_GetDateFormatW]
mov rax, qword [rsp + 0x40]
mov edx, dword [rsp + 0xa8]
lea r9, [rsp + 0xa0]
mov qword [rsp + 0xb8], rax
test edx, edx
jne 0x34b37e478
xor r8d, r8d
mov edx, 0x104d
mov rcx, r14
call r13
inc dword [rsp + 0xa8]
mov dword [rsp + 0xa0], 1
jmp 0x34b37df52
lea r15, [rsp + 0x7c]
xor r8d, r8d
mov edx, 0xb
mov rcx, r12
mov rbp, qword [sym.imp.crypt32.dll_CertGetCertificateContextProperty]
mov r9, r15
call rbp
test eax, eax
je 0x34b37e4b0
mov eax, dword [rsp + 0x7c]
cmp eax, dword [rsp + 0x48]
ja 0x34b37e2b0
test rsi, rsi
jne 0x34b37e303
inc dword [rsp + 0xa8]
mov dword [rsp + 0xa0], 1
jmp 0x34b37df4d
lea rdx, [rsp + 0x88]
mov rcx, r12
call sym.get_cert_usages
mov rax, qword [rsp + 0x88]
test rax, rax
je 0x34b37e13d
mov r8d, dword [rsp + 0xa8]
mov qword [rsp + 0xb8], rax
lea r9, [rsp + 0xa0]
test r8d, r8d
jne 0x34b37e490
xor r8d, r8d
mov edx, 0x104d
mov rcx, r14
call r13
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, qword [rsp + 0x88]
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
inc dword [rsp + 0xa8]
mov dword [rsp + 0xa0], 1
jmp 0x34b37df44
mov rbp, qword [sym.imp.crypt32.dll_CertGetNameStringW]
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x28], 0
mov edx, 4
mov qword [rsp + 0x20], 0
call rbp
mov dword [rsp + 0x7c], eax
cmp eax, dword [rsp + 0x48]
ja 0x34b37e358
test rsi, rsi
jne 0x34b37e3a1
inc dword [rsp + 0xa8]
mov dword [rsp + 0xa0], 1
test bl, 2
jne 0x34b37df3b
mov dword [rsp + 0x28], 0
mov rbp, qword [sym.imp.crypt32.dll_CertGetNameStringW]
xor r9d, r9d
mov rcx, r12
mov qword [rsp + 0x20], 0
mov r8d, 1
mov edx, 4
call rbp
mov dword [rsp + 0x7c], eax
cmp eax, dword [rsp + 0x48]
ja 0x34b37e3e0
test rsi, rsi
jne 0x34b37e429
inc dword [rsp + 0xa8]
mov dword [rsp + 0xa0], 1
jmp 0x34b37df3b
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [rsp + 0x50]
mov esi, dword [rsp + 0x4c]
cmp dword [rax + 0x48], esi
ja 0x34b37de38
mov rcx, qword [rsp + 0x5f0]
mov rsi, qword [rsp + 0x68]
mov edx, 0xbb9
call rsi
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1032
mov rcx, rax
call r13
mov rcx, qword [rsp + 0x5f0]
mov edx, 0xbba
mov rbx, rax
call rsi
xor edx, edx
cmp ebx, 1
mov rcx, rax
sete dl
call qword [sym.imp.user32.dll_EnableWindow]
jmp 0x34b37dbbb
movsxd r8, dword [rsp + 0xa4]
mov edx, 0x1074
mov rcx, r14
call r13
jmp 0x34b37de80
mov r9, qword gs:[0x30]
mov rax, qword [r9 + 0x60]
mov r8, rsi
mov qword [rsp + 0x60], r9
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov r9, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x7c]
xor edx, edx
mov rax, qword [r9 + 0x60]
add r8, r8
mov rcx, qword [rax + 0x30]
mov rax, qword [rsp + 0x58]
call rax
mov rsi, rax
test rax, rax
je 0x34b37e0b3
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x48], eax
mov r9, r15
mov rcx, r12
mov r8, rsi
mov edx, 0xb
call rbp
mov ecx, dword [rsp + 0xa8]
lea r9, [rsp + 0xa0]
test eax, eax
mov rax, rsi
cmove rax, qword [rsp + 0x80]
mov qword [rsp + 0xb8], rax
test ecx, ecx
jne 0x34b37e500
xor r8d, r8d
mov edx, 0x104d
mov rcx, r14
call r13
jmp 0x34b37e0b3
mov r15, qword gs:[0x30]
mov rax, qword [r15 + 0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [r15 + 0x60]
mov r8d, dword [rsp + 0x7c]
xor edx, edx
mov rcx, qword [rax + 0x30]
add r8, r8
mov rax, qword [rsp + 0x58]
call rax
mov rsi, rax
test rax, rax
je 0x34b37e197
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x48], eax
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov edx, 4
call rbp
mov qword [rsp + 0xb8], rsi
xor r8d, r8d
mov rcx, r14
lea r9, [rsp + 0xa0]
mov edx, 0x104d
call r13
jmp 0x34b37e197
mov r15, qword gs:[0x30]
mov rax, qword [r15 + 0x60]
mov r8, rsi
xor edx, edx
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rax, qword [r15 + 0x60]
mov r8d, dword [rsp + 0x7c]
xor edx, edx
mov rcx, qword [rax + 0x30]
add r8, r8
mov rax, qword [rsp + 0x58]
call rax
mov rsi, rax
test rax, rax
je 0x34b37e1f4
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x48], eax
xor r9d, r9d
mov dword [rsp + 0x28], eax
mov r8d, 1
mov rcx, r12
mov qword [rsp + 0x20], rsi
mov edx, 4
call rbp
mov r10d, dword [rsp + 0xa8]
mov qword [rsp + 0xb8], rsi
lea r9, [rsp + 0xa0]
test r10d, r10d
jne 0x34b37e4e0
xor r8d, r8d
mov edx, 0x104d
mov rcx, r14
call r13
jmp 0x34b37e1f4
movsxd r8, dword [rsp + 0xa4]
mov edx, 0x1074
mov rcx, r14
call r13
jmp 0x34b37e05a
movsxd r8, dword [rsp + 0xa4]
mov edx, 0x1074
mov rcx, r14
call r13
jmp 0x34b37e11c
mov rcx, qword [0x34b393008]
xor r9d, r9d
mov edx, 0x447
lea r8, [rsp + 0x80]
call qword [sym.imp.user32.dll_LoadStringW]
mov dword [rsp + 0x7c], eax
jmp 0x34b37e0a0
movsxd r8, dword [rsp + 0xa4]
mov edx, 0x1074
mov rcx, r14
call r13
jmp 0x34b37e1f4
movsxd r8, dword [rsp + 0xa4]
mov edx, 0x1074
mov rcx, r14
call r13
jmp 0x34b37e0b3
lea r9, str.showing_location_is_not_implemented_n
lea r8, str.add_cert_to_list
xor ecx, ecx
lea rdx, [0x34b383240]
call sym.wine_dbg_log.constprop.0
jmp 0x34b37df7b
mov eax, dword [r9 + 0x10]
cmp eax, 0xffffff94
je 0x34b37e66d
cmp eax, 0xfffffffd
jne 0x34b37dbbb
mov edx, dword [r9 + 0x18]
mov rcx, qword [rsp + 0x5f0]
call sym.select_cert_get_selected
mov rcx, qword [rsp + 0x5f0]
mov edx, 0x10
mov r12, rax
call qword [sym.imp.user32.dll_GetWindowLongPtrW]
test r12, r12
je 0x34b37dbbb
mov rcx, qword [rsp + 0x5f0]
mov r8, rax
mov rdx, r12
call sym.select_cert_view
jmp 0x34b37dbbb
cmp r8, 2
je 0x34b37e848
cmp r8, 0xbba
je 0x34b37e83e
cmp r8, 1
jne 0x34b37dbbb
mov rcx, qword [rsp + 0x5f0]
mov edx, 0xffffffff
call sym.select_cert_get_selected
mov rcx, qword [rsp + 0x5f0]
mov edx, 0x10
mov r12, rax
call qword [sym.imp.user32.dll_GetWindowLongPtrW]
mov rbx, rax
test r12, r12
je 0x34b37e8b7
mov rsi, qword [rax]
mov rcx, r12
call qword [sym.imp.crypt32.dll_CertDuplicateCertificateContext]
mov edx, 0xbb9
mov rcx, qword [rsp + 0x5f0]
mov qword [rsi], rax
call qword [sym.imp.user32.dll_GetDlgItem]
mov rcx, rax
call sym.free_certs
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.comctl32.dll_ImageList_Destroy]
xor edx, edx
mov r8, rbx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [rsp + 0x5f0]
mov edx, 1
call qword [sym.imp.user32.dll_EndDialog]
jmp 0x34b37dbbb
mov rcx, qword [rsp + 0x5f0]
mov edx, 0xbb9
call qword [sym.imp.user32.dll_GetDlgItem]
mov rcx, qword [rsp + 0x5f0]
mov edx, 0x10
mov r12, rax
call qword [sym.imp.user32.dll_GetWindowLongPtrW]
mov r8, rax
mov eax, dword [rsi + 0x1c]
cmp eax, dword [r8 + 8]
je 0x34b37e902
mov qword [rsp + 0x1a0], r12
mov edx, 0x1051
mov rcx, r12
lea r9, [sym.select_cert_sort_by_text]
mov dword [rsp + 0x1a8], eax
lea r8, [rsp + 0x1a0]
call qword [sym.imp.user32.dll_SendMessageW]
jmp 0x34b37dbbb
mov r8, qword [rsp + 0x40]
mov r9d, 0x200
mov edx, 0x515
mov rcx, qword [0x34b393008]
call qword [sym.imp.user32.dll_LoadStringW]
mov r8d, edi
mov edx, 0x1061
mov rcx, r14
lea r9, [rsp + 0x100]
call r13
jmp 0x34b37de1a
lea esi, [rdi + 1]
mov r8, qword [rsp + 0x40]
mov edx, 0x436
mov rcx, qword [0x34b393008]
mov r9d, 0x200
call qword [sym.imp.user32.dll_LoadStringW]
mov r8d, edi
mov edx, 0x1061
mov rcx, r14
lea r9, [rsp + 0x100]
mov edi, esi
call r13
jmp 0x34b37de11
lea esi, [rdi + 1]
mov r8, qword [rsp + 0x40]
mov edx, 0x437
mov rcx, qword [0x34b393008]
mov r9d, 0x200
call qword [sym.imp.user32.dll_LoadStringW]
mov r8d, edi
mov edx, 0x1061
mov rcx, r14
lea r9, [rsp + 0x100]
mov edi, esi
call r13
jmp 0x34b37de08
lea esi, [rdi + 1]
mov r8, qword [rsp + 0x40]
mov edx, 0x514
mov rcx, qword [0x34b393008]
mov r9d, 0x200
call qword [sym.imp.user32.dll_LoadStringW]
mov r8d, edi
mov edx, 0x1061
mov rcx, r14
lea r9, [rsp + 0x100]
mov edi, esi
call r13
jmp 0x34b37ddff
lea esi, [rdi + 1]
mov r8, qword [rsp + 0x40]
mov edx, 0x435
mov rcx, qword [0x34b393008]
mov r9d, 0x200
call qword [sym.imp.user32.dll_LoadStringW]
mov r8d, edi
mov edx, 0x1061
mov rcx, r14
lea r9, [rsp + 0x100]
mov edi, esi
call r13
jmp 0x34b37ddf6
mov rcx, qword [0x34b393008]
mov r9d, 0x200
mov r8, rax
mov edx, 0x434
call qword [sym.imp.user32.dll_LoadStringW]
mov edi, 1
xor r8d, r8d
mov rcx, r14
lea r9, [rsp + 0x100]
mov edx, 0x1061
call r13
jmp 0x34b37dded
mov edx, 0xffffffff
jmp 0x34b37e562
mov rcx, qword [rsp + 0x5f0]
mov edx, 0x10
call qword [sym.imp.user32.dll_GetWindowLongPtrW]
mov edx, 0xbb9
mov rcx, qword [rsp + 0x5f0]
mov rbx, rax
call qword [sym.imp.user32.dll_GetDlgItem]
mov rcx, rax
call sym.free_certs
mov rcx, qword [rbx + 0x10]
call qword [sym.imp.comctl32.dll_ImageList_Destroy]
xor edx, edx
mov r8, rbx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
call qword [sym.imp.kernel32.dll_HeapFree]
mov rcx, qword [rsp + 0x5f0]
mov edx, 2
call qword [sym.imp.user32.dll_EndDialog]
jmp 0x34b37dbbb
lea r12, [rsp + 0x100]
mov rcx, qword [0x34b393008]
mov edx, 0x517
mov rdi, qword [sym.imp.user32.dll_LoadStringW]
mov r8, r12
mov r9d, 0x28
call rdi
mov r8, qword [rbx + 0x18]
test r8, r8
je 0x34b37e91f
mov rcx, qword [rsp + 0x5f0]
mov r9d, 0x30
mov rdx, r12
call qword [sym.imp.user32.dll_MessageBoxW]
jmp 0x34b37dbbb
lea r9, [sym.cert_mgr_sort_by_date]
xor r8d, r8d
mov edx, 0x1030
mov rcx, r12
call qword [sym.imp.user32.dll_SendMessageW]
jmp 0x34b37dbbb
lea rsi, [rsp + 0x1a0]
mov r9d, 0x28
mov edx, 0x516
mov rcx, qword [0x34b393008]
mov r8, rsi
call rdi
mov r8, qword [rbx + 0x18]
test r8, r8
cmove r8, rsi
jmp 0x34b37e8e6