Function at 0x10310f0
Capabilities:
Query or enumerate registry value

Disassembly:
mov dword [rsp + 8], ecx
push rdi
mov eax, 0x1330
call fcn.0105ee40
sub rsp, rax
mov rax, qword [0x010657f0]
xor rax, rsp
mov qword [rsp + 0x1328], rax
movzx eax, word [0x01001c38]
mov word [rsp + 0xcf0], ax
lea rax, [rsp + 0xcf2]
mov rdi, rax
xor eax, eax
mov ecx, 0x1fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0x650], ax
lea rax, [rsp + 0x652]
mov rdi, rax
xor eax, eax
mov ecx, 0x7e
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0x250], ax
lea rax, [rsp + 0x252]
mov rdi, rax
xor eax, eax
mov ecx, 0x3fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0x8f0], ax
lea rax, [rsp + 0x8f2]
mov rdi, rax
xor eax, eax
mov ecx, 0x3fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0xf10], ax
lea rax, [rsp + 0xf12]
mov rdi, rax
xor eax, eax
mov ecx, 0x3fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0x6e0], ax
lea rax, [rsp + 0x6e2]
mov rdi, rax
xor eax, eax
mov ecx, 0x1fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c38]
mov word [rsp + 0x50], ax
lea rax, [rsp + 0x52]
mov rdi, rax
xor eax, eax
mov ecx, 0x1fe
rep stosb byte [rdi], al
mov dword [rsp + 0x6d0], 0
mov dword [rsp + 0xefc], 0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0xef0], 0
mov dword [rsp + 0x8e4], 0
mov dword [rsp + 0xef8], 0
mov dword [rsp + 0xef4], 0
mov dword [rsp + 0xf00], 0
mov dword [rsp + 0x8e0], 0
mov eax, dword [rsp + 0x1340]
mov dword [rsp + 0x1314], eax
cmp dword [rsp + 0x1314], 1
je 0x103128f
cmp dword [rsp + 0x1314], 2
je 0x103184d
jmp 0x10318ea
mov qword [0x01068160], 0
mov dword [0x01068560], 0
cmp dword [0x010676f8], 0
je 0x10313c1
xor r8d, r8d
lea rdx, [0x01007b38]
xor ecx, ecx
call fcn.01010910
mov qword [0x01068568], rax
cmp qword [0x01068568], 0
je 0x10313a1
lea rdx, [0x01007b20]
mov rcx, qword [0x01068568]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x01068570], rax
lea rdx, [0x01007b10]
mov rcx, qword [0x01068568]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x01068578], rax
cmp qword [0x01068570], 0
je 0x10313a1
cmp qword [0x01068578], 0
je 0x10313a1
mov dword [rsp + 0x30], 0x200
lea rax, [rsp + 0xf10]
mov qword [rsp + 0x28], rax
lea rax, [0x01067700]
mov qword [rsp + 0x20], rax
lea r9, [0x01002018]
xor r8d, r8d
xor edx, edx
lea rcx, [0x01065e08]
call qword [0x01068570]
mov dword [rsp + 0xef8], eax
cmp dword [rsp + 0xef8], 0
jge 0x103138c
lea r9, [rsp + 0xf10]
mov r8d, 0x104
xor edx, edx
mov ecx, 1
call fcn.01033fa0
jmp 0x10313a1
mov dword [0x01068564], 1
mov dword [rsp + 0x8e4], 1
cmp dword [0x01068564], 0
jne 0x10313bc
mov r8d, 0x163
xor edx, edx
mov ecx, 1
call fcn.01033fa0
jmp 0x1031848
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [0x01067c20]
mov rcx, 0xffffffff80000002
call fcn.01052d70
mov dword [rsp + 0xefc], eax
cmp dword [rsp + 0xefc], 0
jne 0x10314a6
mov dword [rsp + 0x6d0], 0x200
lea rax, [rsp + 0x6d0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xcf0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x01007af0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0xefc], eax
cmp dword [rsp + 0xefc], 0
jne 0x1031457
lea rcx, [rsp + 0xcf0]
call fcn.01052be0
mov dword [rsp + 0x6d0], 4
lea rax, [rsp + 0x6d0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xef0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x01007ad0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0xefc], eax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rsp + 0xcf0]
call qword [sym.imp.MSVCR80.dll_wcslen]
test rax, rax
je 0x103180e
mov r9d, 0x100
lea r8, [rsp + 0x50]
mov edx, 0x100
lea rcx, [rsp + 0x6e0]
call qword [sym.imp.SEMMAP.dll_SFMapi1GetMapiVerInfo]
test eax, eax
je 0x1031598
mov dword [rsp + 0x8e0], 0
mov eax, dword [rsp + 0x8e0]
mov dword [rsp + 0xf00], eax
lea rcx, [rsp + 0x6e0]
call qword [sym.imp.MSVCR80.dll_wcslen]
mov dword [rsp + 0xef4], eax
jmp 0x1031524
mov eax, dword [rsp + 0xf00]
add eax, 1
mov dword [rsp + 0xf00], eax
mov eax, dword [rsp + 0xef4]
cmp dword [rsp + 0xf00], eax
jge 0x1031559
movsxd rax, dword [rsp + 0xf00]
movzx eax, word [rsp + rax*2 + 0x6e0]
cmp eax, 0x5c
jne 0x1031557
mov eax, dword [rsp + 0xf00]
mov dword [rsp + 0x8e0], eax
jmp 0x1031513
movsxd rax, dword [rsp + 0x8e0]
mov word [rsp + rax*2 + 0x6e0], 0
lea rcx, [rsp + 0x6e0]
call qword [sym.imp.MSVCR80.dll__wcsupr]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rcx
mov r9, rax
mov r8d, 0x188
xor edx, edx
mov ecx, 4
call fcn.01033fa0
lea r9, [rsp + 0xcf0]
mov r8d, 0xc4
xor edx, edx
mov ecx, 4
call fcn.01033fa0
call qword [sym.imp.SEMMAP.dll_SFMapi1CanUseMAPI]
test eax, eax
je 0x10317fa
mov eax, dword [0x010679e8]
and eax, 1
test eax, eax
jne 0x10315da
mov dword [rsp + 0x1318], 1
jmp 0x10315e5
mov dword [rsp + 0x1318], 0
mov r8d, 2
mov edx, dword [rsp + 0xef0]
mov ecx, dword [rsp + 0x1318]
call qword [sym.imp.SEMMAP.dll_SFMapi1Initialize]
mov qword [0x01068160], rax
cmp qword [0x01068160], 0
je 0x10317fa
mov r8d, 0x400
xor edx, edx
lea rcx, [rsp + 0xf10]
call sub.MSVCR80.dll_memset
mov dword [rsp + 0x28], 0x200
lea rax, [rsp + 0xf10]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [rsp + 0xcf0]
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Logon]
mov dword [rsp + 0xef8], eax
cmp dword [rsp + 0xef8], 0
jge 0x10317a0
movzx eax, word [rsp + 0xf10]
test eax, eax
jne 0x10316a3
mov r9d, 0x200
lea r8, [rsp + 0xf10]
mov edx, dword [rsp + 0xef8]
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1GetLastError]
test eax, eax
je 0x10316d6
lea rcx, [rsp + 0xf10]
call qword [sym.imp.MSVCR80.dll_wcslen]
movzx eax, word [rsp + rax*2 + 0xf0e]
cmp eax, 0x2e
jne 0x10316d6
lea rcx, [rsp + 0xf10]
call qword [sym.imp.MSVCR80.dll_wcslen]
mov word [rsp + rax*2 + 0xf0e], 0
mov r9d, 0x200
lea r8, [rsp + 0x250]
mov edx, 0x14d
mov rcx, qword [0x01068158]
call qword [sym.imp.USER32.dll_LoadStringW]
movzx eax, word [rsp + 0xf10]
test eax, eax
je 0x1031714
lea rax, [rsp + 0xf10]
mov qword [rsp + 0x1320], rax
jmp 0x103173e
mov eax, dword [rsp + 0xef8]
and eax, 0xffff
mov r8d, 0xa
lea rdx, [rsp + 0x650]
mov ecx, eax
call qword [sym.imp.MSVCR80.dll__ltow]
mov qword [rsp + 0x1320], rax
lea rax, [0x01067e30]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x1320]
lea r8, [rsp + 0x250]
mov edx, 0x200
lea rcx, [rsp + 0x8f0]
call fcn.01015ef0
lea r9, [rsp + 0x8f0]
mov r8d, 0x104
xor edx, edx
mov ecx, 1
call fcn.01033fa0
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1DeInitialize]
mov qword [0x01068160], 0
jmp 0x10317f8
mov dword [rsp + 0x1310], 0
lea rdx, [rsp + 0x1310]
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Version]
mov dword [rsp + 0xef8], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x01068560], eax
mov r9d, dword [rsp + 0x1310]
mov r8d, 0x161
xor edx, edx
mov ecx, 4
call fcn.01033fa0
mov dword [rsp + 0x8e4], 1
jmp 0x103180c
mov r8d, 0x163
xor edx, edx
mov ecx, 1
call fcn.01033fa0
jmp 0x1031848
mov r9d, 0x200
lea r8, [rsp + 0x250]
mov edx, 0x105
mov rcx, qword [0x01068158]
call qword [sym.imp.USER32.dll_LoadStringW]
lea r9, [rsp + 0x250]
mov r8d, 0x104
xor edx, edx
mov ecx, 2
call fcn.01033fa0
jmp 0x10318ea
cmp dword [0x010676f8], 0
je 0x1031890
mov rcx, qword [0x01068568]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x01068570], 0
mov qword [0x01068578], 0
mov dword [0x01068564], 0
mov dword [rsp + 0x8e4], 1
jmp 0x10318ea
cmp qword [0x01068160], 0
je 0x10318ea
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x01068560]
jne 0x10318ea
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Logoff]
mov r8d, 0x166
xor edx, edx
mov ecx, 4
call fcn.01033fa0
mov rcx, qword [0x01068160]
call qword [sym.imp.SEMMAP.dll_SFMapi1DeInitialize]
mov qword [0x01068160], 0
mov dword [rsp + 0x8e4], 1
mov eax, dword [rsp + 0x8e4]
mov rcx, qword [rsp + 0x1328]
xor rcx, rsp
call fcn.010588f0
add rsp, 0x1330
pop rdi
ret