Function at 0x1031c10
Capabilities:
Query or enumerate registry value

Disassembly:
mov dword [rsp + 8], ecx
push rdi
mov eax, 0x1330
call fcn.0105fe80
sub rsp, rax
mov rax, qword [0x010667f0]
xor rax, rsp
mov qword [rsp + 0x1328], rax
mov word [rsp + 0xcf0], 0
lea rax, [rsp + 0xcf2]
mov rdi, rax
xor eax, eax
mov ecx, 0x1fe
rep stosb byte [rdi], al
movzx eax, word [0x01001c50]
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 [0x01001c50]
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 [0x01001c50]
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 [0x01001c50]
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 [0x01001c50]
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 [0x01001c50]
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 0x1031daa
cmp dword [rsp + 0x1314], 2
je 0x1032368
jmp 0x1032405
mov qword [0x01069160], 0
mov dword [0x01069560], 0
cmp dword [0x010686f8], 0
je 0x1031edc
xor r8d, r8d
lea rdx, [0x01007dc8]
xor ecx, ecx
call fcn.01010bb0
mov qword [0x01069568], rax
cmp qword [0x01069568], 0
je 0x1031ebc
lea rdx, [0x01007db0]
mov rcx, qword [0x01069568]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x01069570], rax
lea rdx, [0x01007da0]
mov rcx, qword [0x01069568]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x01069578], rax
cmp qword [0x01069570], 0
je 0x1031ebc
cmp qword [0x01069578], 0
je 0x1031ebc
mov dword [rsp + 0x30], 0x200
lea rax, [rsp + 0xf10]
mov qword [rsp + 0x28], rax
lea rax, [0x01068700]
mov qword [rsp + 0x20], rax
lea r9, [0x01002028]
xor r8d, r8d
xor edx, edx
lea rcx, [0x01066e08]
call qword [0x01069570]
mov dword [rsp + 0xef8], eax
cmp dword [rsp + 0xef8], 0
jge 0x1031ea7
lea r9, [rsp + 0xf10]
mov r8d, 0x104
xor edx, edx
mov ecx, 1
call fcn.01034b80
jmp 0x1031ebc
mov dword [0x01069564], 1
mov dword [rsp + 0x8e4], 1
cmp dword [0x01069564], 0
jne 0x1031ed7
mov r8d, 0x163
xor edx, edx
mov ecx, 1
call fcn.01034b80
jmp 0x1032363
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [0x01068c20]
mov rcx, 0xffffffff80000002
call fcn.01053a20
mov dword [rsp + 0xefc], eax
cmp dword [rsp + 0xefc], 0
jne 0x1031fc1
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, [0x01007d80]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov dword [rsp + 0xefc], eax
cmp dword [rsp + 0xefc], 0
jne 0x1031f72
lea rcx, [rsp + 0xcf0]
call fcn.01053890
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, [0x01007d60]
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 0x1032329
mov r9d, pe_nt_image_headers64
lea r8, [rsp + 0x50]
mov edx, pe_nt_image_headers64
lea rcx, [rsp + 0x6e0]
call qword [sym.imp.SEMMAP.dll_SFMapi1GetMapiVerInfo]
test eax, eax
je 0x10320b3
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 0x103203f
mov eax, dword [rsp + 0xf00]
add eax, 1
mov dword [rsp + 0xf00], eax
mov eax, dword [rsp + 0xef4]
cmp dword [rsp + 0xf00], eax
jge 0x1032074
movsxd rax, dword [rsp + 0xf00]
movzx eax, word [rsp + rax*2 + 0x6e0]
cmp eax, 0x5c
jne 0x1032072
mov eax, dword [rsp + 0xf00]
mov dword [rsp + 0x8e0], eax
jmp 0x103202e
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.01034b80
lea r9, [rsp + 0xcf0]
mov r8d, 0xc4
xor edx, edx
mov ecx, 4
call fcn.01034b80
call qword [sym.imp.SEMMAP.dll_SFMapi1CanUseMAPI]
test eax, eax
je 0x1032315
mov eax, dword [0x010689e8]
and eax, 1
test eax, eax
jne 0x10320f5
mov dword [rsp + 0x1318], 1
jmp 0x1032100
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 [0x01069160], rax
cmp qword [0x01069160], 0
je 0x1032315
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 [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Logon]
mov dword [rsp + 0xef8], eax
cmp dword [rsp + 0xef8], 0
jge 0x10322bb
movzx eax, word [rsp + 0xf10]
test eax, eax
jne 0x10321be
mov r9d, 0x200
lea r8, [rsp + 0xf10]
mov edx, dword [rsp + 0xef8]
mov rcx, qword [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1GetLastError]
test eax, eax
je 0x10321f1
lea rcx, [rsp + 0xf10]
call qword [sym.imp.MSVCR80.dll_wcslen]
movzx eax, word [rsp + rax*2 + 0xf0e]
cmp eax, 0x2e
jne 0x10321f1
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 [0x01069158]
call qword [sym.imp.USER32.dll_LoadStringW]
movzx eax, word [rsp + 0xf10]
test eax, eax
je 0x103222f
lea rax, [rsp + 0xf10]
mov qword [rsp + 0x1320], rax
jmp 0x1032259
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, [0x01068e30]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x1320]
lea r8, [rsp + 0x250]
mov edx, 0x200
lea rcx, [rsp + 0x8f0]
call fcn.01016110
lea r9, [rsp + 0x8f0]
mov r8d, 0x104
xor edx, edx
mov ecx, 1
call fcn.01034b80
mov rcx, qword [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1DeInitialize]
mov qword [0x01069160], 0
jmp 0x1032313
mov dword [rsp + 0x1310], 0
lea rdx, [rsp + 0x1310]
mov rcx, qword [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Version]
mov dword [rsp + 0xef8], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x01069560], eax
mov r9d, dword [rsp + 0x1310]
mov r8d, 0x161
xor edx, edx
mov ecx, 4
call fcn.01034b80
mov dword [rsp + 0x8e4], 1
jmp 0x1032327
mov r8d, 0x163
xor edx, edx
mov ecx, 1
call fcn.01034b80
jmp 0x1032363
mov r9d, 0x200
lea r8, [rsp + 0x250]
mov edx, 0x105
mov rcx, qword [0x01069158]
call qword [sym.imp.USER32.dll_LoadStringW]
lea r9, [rsp + 0x250]
mov r8d, 0x104
xor edx, edx
mov ecx, 2
call fcn.01034b80
jmp 0x1032405
cmp dword [0x010686f8], 0
je 0x10323ab
mov rcx, qword [0x01069568]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [0x01069570], 0
mov qword [0x01069578], 0
mov dword [0x01069564], 0
mov dword [rsp + 0x8e4], 1
jmp 0x1032405
cmp qword [0x01069160], 0
je 0x1032405
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [0x01069560]
jne 0x1032405
mov rcx, qword [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1Logoff]
mov r8d, 0x166
xor edx, edx
mov ecx, 4
call fcn.01034b80
mov rcx, qword [0x01069160]
call qword [sym.imp.SEMMAP.dll_SFMapi1DeInitialize]
mov qword [0x01069160], 0
mov dword [rsp + 0x8e4], 1
mov eax, dword [rsp + 0x8e4]
mov rcx, qword [rsp + 0x1328]
xor rcx, rsp
call fcn.01059ab0
add rsp, 0x1330
pop rdi
ret