Function at 0x4102cb20
Capabilities:
Check if file exists
Get common file path
Get program files directory
Query or enumerate registry value
Read .ini file

Disassembly:
push rbx
push rdi
push r13
mov eax, 0x10e0
call fcn.41295c90
sub rsp, rax
mov rax, qword [0x41359af8]
xor rax, rsp
mov qword [rsp + 0x10c0], rax
mov r13, rcx
lea rcx, [rsp + 0x672]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x670], 0
call fcn.412121c0
lea rcx, [rsp + 0xca2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xca0], 0
call fcn.412121c0
lea rcx, [rsp + 0x882]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x880], 0
call fcn.412121c0
lea rcx, [rsp + 0xa92]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xa90], 0
call fcn.412121c0
lea rcx, [rsp + 0x252]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x250], 0
call fcn.412121c0
lea rcx, [rsp + 0x42]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x40], 0
call fcn.412121c0
xor r9d, r9d
lea rdx, [rsp + 0x670]
lea r8d, [r9 + 0x2c]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [0x4129a2c0]
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x670]
lea r9, [rsp + 0xca0]
repne scasw ax, word [rdi]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rax, qword [str.SmartCloudInput]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a220]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a228]
mov qword [rdi + 0xe], rax
mov rax, qword [0x4129a230]
mov qword [rdi + 0x16], rax
xor eax, eax
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rax, qword [0x4129a2a8]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a2b0]
mov qword [rdi + 6], rax
mov eax, dword [0x4129a2b8]
mov dword [rdi + 0xe], eax
movzx eax, word [0x4129a2bc]
mov word [rdi + 0x12], ax
xor eax, eax
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rax, qword [str..ini]
mov qword [rdi - 2], rax
movzx eax, word [0x4129a2a0]
mov word [rdi + 6], ax
lea rax, [rsp + 0x670]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
lea r8, [0x412a02a8]
lea rdx, str.InstallPath
lea rcx, str.Globals
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
xor ebx, ebx
mov rcx, rbx
nop
nop
movzx eax, word [rsp + rcx + 0xca0]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102cd20
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x4102cd40
xor eax, eax
or rcx, 0xffffffffffffffff
mov qword [rsp + 0x1108], rbp
lea rdi, [rsp + 0x40]
mov qword [rsp + 0x1110], rsi
mov qword [rsp + 0x10d8], r12
repne scasw ax, word [rdi]
mov rax, qword [0x4129a368]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a370]
mov qword [rsp + 0x10d0], r14
mov qword [rdi + 6], rax
mov rax, qword [0x4129a378]
mov qword [rdi + 0xe], rax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x4129a2c0]
lea rcx, [rsp + 0x40]
mov dword [rdi - 2], eax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d0c1
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.412121c0
mov rdx, rbx
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x4102cdf0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x460]
repne scasw ax, word [rdi]
mov rax, qword [str.SCConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x4129a350]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a358]
mov qword [rdi + 0xe], rax
movzx eax, word [0x4129a360]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d0c1
mov rdx, qword [r13 + 0xe8]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x250]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102ce8a
lea rdi, [r13 + 0xd0]
mov rax, qword [rdi]
jmp 0x4102ce94
lea rdi, [r13 + 0xd0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x4102cf03
cmp rdx, 8
jb 0x4102ceb6
mov rcx, qword [rdi]
jmp 0x4102ceb9
mov rcx, rdi
mov rax, qword [r13 + 0xe0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x4102cf03
cmp rdx, 8
jb 0x4102ceda
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xc8]
lea rcx, [r13 + 0xc8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
jmp 0x4102cf93
cmp r12, rbp
jbe 0x4102cf0d
call fcn.4120fbc0
mov rax, qword [r13 + 0xe8]
cmp rax, r12
jae 0x4102cf46
mov r8, qword [r13 + 0xe0]
lea rcx, [r13 + 0xc8]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102cf93
mov rdx, qword [r13 + 0xe8]
cmp rdx, 8
jb 0x4102cf60
mov rcx, qword [rdi]
jmp 0x4102cf63
test r12, r12
jne 0x4102cf2f
cmp rax, 8
mov qword [r13 + 0xe0], rbx
jb 0x4102cf5b
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x4102cf93
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.412118b0
cmp qword [r13 + 0xe8], 8
mov qword [r13 + 0xe0], r12
jb 0x4102cf8e
mov rdi, qword [rdi]
mov word [r14 + rdi], bx
mov rdx, qword [r13 + 0x110]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102cfc1
lea rdi, [r13 + 0xf8]
mov rax, qword [rdi]
jmp 0x4102cfcb
lea rdi, [r13 + 0xf8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x4102d027
cmp rdx, 8
jb 0x4102cfe0
mov rcx, qword [rdi]
jmp 0x4102cfe3
mov rcx, rdi
mov rax, qword [r13 + 0x108]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x4102d027
cmp rdx, 8
jb 0x4102d001
mov rdi, qword [rdi]
lea r8, [rsp + 0x40]
lea rdx, [r13 + 0xf0]
lea rcx, [r13 + 0xf0]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
jmp 0x4102dd0e
cmp r12, rbp
jbe 0x4102d031
call fcn.4120fbc0
mov rax, qword [r13 + 0x110]
cmp rax, r12
jae 0x4102d06e
mov r8, qword [r13 + 0x108]
lea rcx, [r13 + 0xf0]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102dd0e
mov rdx, qword [r13 + 0x110]
cmp rdx, 8
jb 0x4102d08b
mov rcx, qword [rdi]
jmp 0x4102d08e
test r12, r12
jne 0x4102d053
cmp rax, 8
mov qword [r13 + 0x108], rbx
jb 0x4102d083
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x4102dd0e
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.412118b0
cmp qword [r13 + 0x110], 8
mov qword [r13 + 0x108], r12
jb 0x4102d0b6
mov rdi, qword [rdi]
mov word [rbx + rdi], 0
jmp 0x4102dd0e
lea rcx, [rsp + 0xeb2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xeb0], bx
call fcn.412121c0
mov rdx, rbx
lea rcx, str.SOFTWARE_
nop
nop
movzx eax, word [rdx + rcx]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0xeae], ax
jne 0x4102d0f0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0xeb0]
repne scasw ax, word [rdi]
mov rax, qword [str.SmartCloudInput]
lea rdx, [rsp + 0xeb0]
mov qword [rdi - 2], rax
mov rax, qword [0x4129a220]
mov r9d, 0x20019
mov qword [rdi + 6], rax
mov rax, qword [0x4129a228]
xor r8d, r8d
mov qword [rdi + 0xe], rax
mov rax, qword [0x4129a230]
mov rcx, 0xffffffff80000002
mov qword [rdi + 0x16], rax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4102d560
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea rdx, str.InstallPath
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xa90]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x30], 0x104
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4102d560
mov rcx, rbx
nop
nop
nop
movzx eax, word [rsp + rcx + 0xa90]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102d1c0
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x4102d1e0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov rax, qword [0x4129a368]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a370]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a378]
mov qword [rdi + 0xe], rax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x4129a2c0]
lea rcx, [rsp + 0x40]
mov dword [rdi - 2], eax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d560
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.412121c0
mov rdx, rbx
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x4102d270
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x460]
repne scasw ax, word [rdi]
mov rax, qword [str.SCConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x4129a350]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a358]
mov qword [rdi + 0xe], rax
movzx eax, word [0x4129a360]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d560
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [r13 + 0xe8]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x250]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102d315
lea rdi, [r13 + 0xd0]
mov rax, qword [rdi]
jmp 0x4102d31f
lea rdi, [r13 + 0xd0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x4102d38e
cmp rdx, 8
jb 0x4102d341
mov rcx, qword [rdi]
jmp 0x4102d344
mov rcx, rdi
mov rax, qword [r13 + 0xe0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x4102d38e
cmp rdx, 8
jb 0x4102d365
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xc8]
lea rcx, [r13 + 0xc8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
jmp 0x4102d41e
cmp r12, rbp
jbe 0x4102d398
call fcn.4120fbc0
mov rax, qword [r13 + 0xe8]
cmp rax, r12
jae 0x4102d3d1
mov r8, qword [r13 + 0xe0]
lea rcx, [r13 + 0xc8]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102d41e
mov rdx, qword [r13 + 0xe8]
cmp rdx, 8
jb 0x4102d3eb
mov rcx, qword [rdi]
jmp 0x4102d3ee
test r12, r12
jne 0x4102d3ba
cmp rax, 8
mov qword [r13 + 0xe0], rbx
jb 0x4102d3e6
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x4102d41e
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.412118b0
cmp qword [r13 + 0xe8], 8
mov qword [r13 + 0xe0], r12
jb 0x4102d419
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0x110]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102d44c
lea rdi, [r13 + 0xf8]
mov rax, qword [rdi]
jmp 0x4102d456
lea rdi, [r13 + 0xf8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x4102d4ba
cmp rdx, 8
jb 0x4102d46b
mov rcx, qword [rdi]
jmp 0x4102d46e
mov rcx, rdi
mov rax, qword [r13 + 0x108]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x4102d4ba
cmp rdx, 8
jb 0x4102d48c
mov rdi, qword [rdi]
lea r8, [rsp + 0x40]
lea rdx, [r13 + 0xf0]
lea rcx, [r13 + 0xf0]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
mov rcx, r13
call fcn.4102a890
jmp 0x4102dd0e
cmp r12, rbp
jbe 0x4102d4c4
call fcn.4120fbc0
mov rax, qword [r13 + 0x110]
cmp rax, r12
jae 0x4102d4fd
mov r8, qword [r13 + 0x108]
lea rcx, [r13 + 0xf0]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102d553
mov rdx, qword [r13 + 0x110]
cmp rdx, 8
jb 0x4102d522
mov rcx, qword [rdi]
jmp 0x4102d525
test r12, r12
jne 0x4102d4e6
cmp rax, 8
mov qword [r13 + 0x108], rbx
jb 0x4102d512
mov rdi, qword [rdi]
mov rcx, r13
mov word [rdi], bx
call fcn.4102a890
jmp 0x4102dd0e
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.412118b0
cmp qword [r13 + 0x110], 8
mov qword [r13 + 0x108], r12
jb 0x4102d54d
mov rdi, qword [rdi]
mov word [rdi + rbx], 0
mov rcx, r13
call fcn.4102a890
jmp 0x4102dd0e
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
lea rdx, [rsp + 0x880]
lea r8d, [r9 + 0x2a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [0x4129a2c0]
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x880]
repne scasw ax, word [rdi]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x880]
repne scasw ax, word [rdi]
mov rax, qword [str.SmartCloudInput]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a220]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a228]
mov qword [rdi + 0xe], rax
mov rax, qword [0x4129a230]
mov qword [rdi + 0x16], rax
lea rdi, [rsp + 0x880]
xor eax, eax
repne scasw ax, word [rdi]
mov rcx, rbx
mov dword [rdi - 2], edx
nop
movzx eax, word [rsp + rcx + 0x880]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102d5f0
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x4102d610
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov rax, qword [0x4129a368]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a370]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a378]
mov qword [rdi + 0xe], rax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
lea rcx, [rsp + 0x40]
mov dword [rdi - 2], edx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d93f
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.412121c0
mov rdx, rbx
nop
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x4102d6a0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x460]
repne scasw ax, word [rdi]
mov rax, qword [str.SCConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x4129a350]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a358]
mov qword [rdi + 0xe], rax
movzx eax, word [0x4129a360]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102d93f
mov rdx, qword [r13 + 0xe8]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x250]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102d73a
lea rdi, [r13 + 0xd0]
mov rax, qword [rdi]
jmp 0x4102d744
lea rdi, [r13 + 0xd0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x4102d7b3
cmp rdx, 8
jb 0x4102d766
mov rcx, qword [rdi]
jmp 0x4102d769
mov rcx, rdi
mov rax, qword [r13 + 0xe0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x4102d7b3
cmp rdx, 8
jb 0x4102d78a
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xc8]
lea rcx, [r13 + 0xc8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
jmp 0x4102d843
cmp r12, rbp
jbe 0x4102d7bd
call fcn.4120fbc0
mov rax, qword [r13 + 0xe8]
cmp rax, r12
jae 0x4102d7f6
mov r8, qword [r13 + 0xe0]
lea rcx, [r13 + 0xc8]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102d843
mov rdx, qword [r13 + 0xe8]
cmp rdx, 8
jb 0x4102d810
mov rcx, qword [rdi]
jmp 0x4102d813
test r12, r12
jne 0x4102d7df
cmp rax, 8
mov qword [r13 + 0xe0], rbx
jb 0x4102d80b
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x4102d843
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.412118b0
cmp qword [r13 + 0xe8], 8
mov qword [r13 + 0xe0], r12
jb 0x4102d83e
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0x110]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102d871
lea rdi, [r13 + 0xf8]
mov rax, qword [rdi]
jmp 0x4102d87b
lea rdi, [r13 + 0xf8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x4102d8b7
cmp rdx, 8
jb 0x4102d890
mov rcx, qword [rdi]
jmp 0x4102d893
mov rcx, rdi
mov rax, qword [r13 + 0x108]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x4102d8b7
cmp rdx, 8
jb 0x4102d001
jmp 0x4102cffe
cmp r12, rbp
jbe 0x4102d8c1
call fcn.4120fbc0
mov rax, qword [r13 + 0x110]
cmp rax, r12
jae 0x4102d8e5
mov r8, qword [r13 + 0x108]
lea rcx, [r13 + 0xf0]
mov rdx, r12
call fcn.41022ab0
jmp 0x4102d8ee
test r12, r12
je 0x4102d073
test r12, r12
je 0x4102dd0e
mov rdx, qword [r13 + 0x110]
cmp rdx, 8
jb 0x4102d909
mov rcx, qword [rdi]
jmp 0x4102d90c
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.412118b0
mov qword [r13 + 0x108], r12
cmp qword [r13 + 0x110], 8
jb 0x4102d934
mov rdi, qword [rdi]
mov word [rdi + rbx], 0
jmp 0x4102dd0e
lea rcx, [rsp + 0xca0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102dbe3
mov rcx, rbx
nop
nop
movzx eax, word [rsp + rcx + 0xca0]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102d960
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x4102d980
mov rdx, qword [r13 + 0xe8]
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov rax, qword [0x4129a368]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a370]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a378]
mov qword [rdi + 0xe], rax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x4129a2c0]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], eax
xor eax, eax
lea rdi, [rsp + 0x250]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102da0d
lea rdi, [r13 + 0xd0]
mov rax, qword [rdi]
jmp 0x4102da17
lea rdi, [r13 + 0xd0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x4102da86
cmp rdx, 8
jb 0x4102da39
mov rcx, qword [rdi]
jmp 0x4102da3c
mov rcx, rdi
mov rax, qword [r13 + 0xe0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x4102da86
cmp rdx, 8
jb 0x4102da5d
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xc8]
lea rcx, [r13 + 0xc8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.41022de0
jmp 0x4102db16
cmp r12, rbp
jbe 0x4102da90
call fcn.4120fbc0
mov rax, qword [r13 + 0xe8]
cmp rax, r12
jae 0x4102dac9
mov r8, qword [r13 + 0xe0]
lea rcx, [r13 + 0xc8]
mov rdx, r12
call fcn.41022ab0
test r12, r12
je 0x4102db16
mov rdx, qword [r13 + 0xe8]
cmp rdx, 8
jb 0x4102dae3
mov rcx, qword [rdi]
jmp 0x4102dae6
test r12, r12
jne 0x4102dab2
cmp rax, 8
mov qword [r13 + 0xe0], rbx
jb 0x4102dade
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x4102db16
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.412118b0
cmp qword [r13 + 0xe8], 8
mov qword [r13 + 0xe0], r12
jb 0x4102db11
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0x110]
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x4102db44
lea rdi, [r13 + 0xf8]
mov rax, qword [rdi]
jmp 0x4102db4e
lea rdi, [r13 + 0xf8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x4102db8a
cmp rdx, 8
jb 0x4102db63
mov rcx, qword [rdi]
jmp 0x4102db66
mov rcx, rdi
mov rax, qword [r13 + 0x108]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x4102db8a
cmp rdx, 8
jb 0x4102d001
jmp 0x4102cffe
cmp r12, rbp
jbe 0x4102db94
call fcn.4120fbc0
mov rax, qword [r13 + 0x110]
cmp rax, r12
jae 0x4102dbb8
mov r8, qword [r13 + 0x108]
lea rcx, [r13 + 0xf0]
mov rdx, r12
call fcn.41022ab0
jmp 0x4102dbc1
test r12, r12
je 0x4102d073
test r12, r12
je 0x4102dd0e
mov rdx, qword [r13 + 0x110]
cmp rdx, 8
jb 0x4102d909
mov rcx, qword [rdi]
jmp 0x4102d90c
lea rcx, [rsp + 0xa90]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4102dc38
mov rcx, rbx
nop
nop
movzx eax, word [rsp + rcx + 0xa90]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102dc00
nop
nop
movzx eax, word [rsp + rbx + 0x250]
add rbx, 2
test ax, ax
mov word [rsp + rbx + 0x3e], ax
jne 0x4102dc20
jmp 0x4102dc76
mov rcx, rbx
nop
nop
movzx eax, word [rsp + rcx + 0x880]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x4102dc40
nop
nop
movzx eax, word [rsp + rbx + 0x250]
add rbx, 2
test ax, ax
mov word [rsp + rbx + 0x3e], ax
jne 0x4102dc60
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov rax, qword [0x4129a368]
or rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x4129a370]
lea rdx, [rsp + 0x250]
mov qword [rdi + 6], rax
mov rax, qword [0x4129a378]
mov qword [rdi + 0xe], rax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x4129a2c0]
or rcx, 0xffffffffffffffff
mov dword [rdi - 2], eax
xor eax, eax
lea rdi, [rsp + 0x250]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [r13 + 0xc8]
call fcn.41024690
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x40]
lea rdx, [rsp + 0x40]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [r13 + 0xf0]
call fcn.41024690
mov r14, qword [rsp + 0x10d0]
mov r12, qword [rsp + 0x10d8]
mov rsi, qword [rsp + 0x1110]
mov rbp, qword [rsp + 0x1108]
mov rcx, qword [rsp + 0x10c0]
xor rcx, rsp
call fcn.41211b80
add rsp, 0x10e0
pop r13
pop rdi
pop rbx
ret