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

Disassembly:
mov eax, 0x10f8
call fcn.004200d0
sub rsp, rax
mov rax, qword [0x0042a560]
xor rax, rsp
mov qword [rsp + 0x10c0], rax
mov qword [rsp + 0x1108], rbx
mov qword [rsp + 0x10f0], rdi
mov qword [rsp + 0x10e0], r13
mov r13, rcx
lea rcx, [rsp + 0x672]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x670], 0
call fcn.0040e3f0
lea rcx, [rsp + 0xca2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xca0], 0
call fcn.0040e3f0
lea rcx, [rsp + 0x882]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x880], 0
call fcn.0040e3f0
lea rcx, [rsp + 0xa92]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xa90], 0
call fcn.0040e3f0
lea rcx, [rsp + 0x252]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x250], 0
call fcn.0040e3f0
lea rcx, [rsp + 0x42]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x40], 0
call fcn.0040e3f0
xor r9d, r9d
lea rdx, [rsp + 0x670]
lea r8d, [r9 + 0x2c]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [0x004219d4]
xor eax, eax
lea rdi, [rsp + 0x670]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rax, qword [str.WanNengWBInput]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00421fe0]
mov qword [rdi + 6], rax
mov rax, qword [0x00421fe8]
mov qword [rdi + 0xe], rax
mov eax, dword [0x00421ff0]
mov dword [rdi + 0x16], eax
movzx eax, word [0x00421ff4]
mov word [rdi + 0x1a], ax
xor eax, eax
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x670]
repne scasw ax, word [rdi]
mov rax, qword [str.WanNengWB]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x004229b8]
mov qword [rdi + 6], rax
mov eax, dword [0x004229c0]
mov dword [rdi + 0xe], eax
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 [0x004229a8]
mov word [rdi + 6], ax
lea rax, [rsp + 0x670]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0xca0]
lea r8, [0x00421e14]
lea rdx, str.InstallPath
lea rcx, str.Globals
mov dword [rsp + 0x20], 0x104
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 0x40bb90
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x40bbb0
xor eax, eax
lea rdi, [rsp + 0x40]
mov qword [rsp + 0x1110], rbp
mov rcx, 0xffffffffffffffff
mov qword [rsp + 0x1118], rsi
mov qword [rsp + 0x10e8], r12
repne scasw ax, word [rdi]
mov rax, qword [str.9.6.1.0920]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00422a70]
mov qword [rsp + 0x10d8], r14
mov qword [rdi + 6], rax
mov eax, dword [0x00422a78]
mov dword [rdi + 0xe], eax
movzx eax, word [0x00422a7c]
mov word [rdi + 0x12], ax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x004219d4]
lea rcx, [rsp + 0x40]
mov dword [rdi - 2], eax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40bf4a
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.0040e3f0
mov rdx, rbx
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x40bc70
xor eax, eax
lea rdi, [rsp + 0x460]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.WnConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x00422a50]
mov qword [rdi + 6], rax
mov rax, qword [0x00422a58]
mov qword [rdi + 0xe], rax
movzx eax, word [0x00422a60]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40bf4a
mov rdx, qword [r13 + 0xc8]
xor eax, eax
lea rdi, [rsp + 0x250]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40bd10
lea rdi, [r13 + 0xb0]
mov rax, qword [rdi]
jmp 0x40bd1a
lea rdi, [r13 + 0xb0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x40bd89
cmp rdx, 8
jb 0x40bd3c
mov rcx, qword [rdi]
jmp 0x40bd3f
mov rcx, rdi
mov rax, qword [r13 + 0xc0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x40bd89
cmp rdx, 8
jb 0x40bd60
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xa8]
lea rcx, [r13 + 0xa8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
jmp 0x40be19
cmp r12, rbp
jbe 0x40bd93
call fcn.0040e230
mov rax, qword [r13 + 0xc8]
cmp rax, r12
jae 0x40bdcc
mov r8, qword [r13 + 0xc0]
lea rcx, [r13 + 0xa8]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40be19
mov rdx, qword [r13 + 0xc8]
cmp rdx, 8
jb 0x40bde6
mov rcx, qword [rdi]
jmp 0x40bde9
test r12, r12
jne 0x40bdb5
cmp rax, 8
mov qword [r13 + 0xc0], rbx
jb 0x40bde1
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x40be19
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.0040e710
cmp qword [r13 + 0xc8], 8
mov qword [r13 + 0xc0], r12
jb 0x40be14
mov rdi, qword [rdi]
mov word [r14 + rdi], bx
mov rdx, qword [r13 + 0xf0]
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40be4a
lea rdi, [r13 + 0xd8]
mov rax, qword [rdi]
jmp 0x40be54
lea rdi, [r13 + 0xd8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x40beb0
cmp rdx, 8
jb 0x40be69
mov rcx, qword [rdi]
jmp 0x40be6c
mov rcx, rdi
mov rax, qword [r13 + 0xe8]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x40beb0
cmp rdx, 8
jb 0x40be8a
mov rdi, qword [rdi]
lea r8, [rsp + 0x40]
lea rdx, [r13 + 0xd0]
lea rcx, [r13 + 0xd0]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
jmp 0x40cbf3
cmp r12, rbp
jbe 0x40beba
call fcn.0040e230
mov rax, qword [r13 + 0xf0]
cmp rax, r12
jae 0x40bef7
mov r8, qword [r13 + 0xe8]
lea rcx, [r13 + 0xd0]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40cbf3
mov rdx, qword [r13 + 0xf0]
cmp rdx, 8
jb 0x40bf14
mov rcx, qword [rdi]
jmp 0x40bf17
test r12, r12
jne 0x40bedc
cmp rax, 8
mov qword [r13 + 0xe8], rbx
jb 0x40bf0c
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x40cbf3
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.0040e710
cmp qword [r13 + 0xf0], 8
mov qword [r13 + 0xe8], r12
jb 0x40bf3f
mov rdi, qword [rdi]
mov word [rbx + rdi], 0
jmp 0x40cbf3
lea rcx, [rsp + 0xeb2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xeb0], bx
call fcn.0040e3f0
mov rdx, rbx
lea rcx, str.SOFTWARE_
movzx eax, word [rdx + rcx]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0xeae], ax
jne 0x40bf71
xor eax, eax
lea rdi, [rsp + 0xeb0]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.WanNengWBInput]
lea rdx, [rsp + 0xeb0]
mov qword [rdi - 2], rax
mov rax, qword [0x00421fe0]
mov r9d, 0x20019
mov qword [rdi + 6], rax
mov rax, qword [0x00421fe8]
xor r8d, r8d
mov qword [rdi + 0xe], rax
mov eax, dword [0x00421ff0]
mov rcx, 0xffffffff80000002
mov dword [rdi + 0x16], eax
movzx eax, word [0x00421ff4]
mov word [rdi + 0x1a], ax
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40c3f9
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 0x40c3f9
mov rcx, rbx
movzx eax, word [rsp + rcx + 0xa90]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x40c041
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x40c060
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.9.6.1.0920]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00422a70]
mov qword [rdi + 6], rax
mov eax, dword [0x00422a78]
mov dword [rdi + 0xe], eax
movzx eax, word [0x00422a7c]
mov word [rdi + 0x12], ax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x004219d4]
lea rcx, [rsp + 0x40]
mov dword [rdi - 2], eax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40c3f9
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.0040e3f0
mov rdx, rbx
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x40c100
xor eax, eax
lea rdi, [rsp + 0x460]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.WnConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x00422a50]
mov qword [rdi + 6], rax
mov rax, qword [0x00422a58]
mov qword [rdi + 0xe], rax
movzx eax, word [0x00422a60]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40c3f9
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [r13 + 0xc8]
xor eax, eax
lea rdi, [rsp + 0x250]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40c1ab
lea rdi, [r13 + 0xb0]
mov rax, qword [rdi]
jmp 0x40c1b5
lea rdi, [r13 + 0xb0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x40c224
cmp rdx, 8
jb 0x40c1d7
mov rcx, qword [rdi]
jmp 0x40c1da
mov rcx, rdi
mov rax, qword [r13 + 0xc0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x40c224
cmp rdx, 8
jb 0x40c1fb
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xa8]
lea rcx, [r13 + 0xa8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
jmp 0x40c2b4
cmp r12, rbp
jbe 0x40c22e
call fcn.0040e230
mov rax, qword [r13 + 0xc8]
cmp rax, r12
jae 0x40c267
mov r8, qword [r13 + 0xc0]
lea rcx, [r13 + 0xa8]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40c2b4
mov rdx, qword [r13 + 0xc8]
cmp rdx, 8
jb 0x40c281
mov rcx, qword [rdi]
jmp 0x40c284
test r12, r12
jne 0x40c250
cmp rax, 8
mov qword [r13 + 0xc0], rbx
jb 0x40c27c
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x40c2b4
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.0040e710
cmp qword [r13 + 0xc8], 8
mov qword [r13 + 0xc0], r12
jb 0x40c2af
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0xf0]
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40c2e5
lea rdi, [r13 + 0xd8]
mov rax, qword [rdi]
jmp 0x40c2ef
lea rdi, [r13 + 0xd8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x40c353
cmp rdx, 8
jb 0x40c304
mov rcx, qword [rdi]
jmp 0x40c307
mov rcx, rdi
mov rax, qword [r13 + 0xe8]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x40c353
cmp rdx, 8
jb 0x40c325
mov rdi, qword [rdi]
lea r8, [rsp + 0x40]
lea rdx, [r13 + 0xd0]
lea rcx, [r13 + 0xd0]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
mov rcx, r13
call fcn.00409680
jmp 0x40cbf3
cmp r12, rbp
jbe 0x40c35d
call fcn.0040e230
mov rax, qword [r13 + 0xf0]
cmp rax, r12
jae 0x40c396
mov r8, qword [r13 + 0xe8]
lea rcx, [r13 + 0xd0]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40c3ec
mov rdx, qword [r13 + 0xf0]
cmp rdx, 8
jb 0x40c3bb
mov rcx, qword [rdi]
jmp 0x40c3be
test r12, r12
jne 0x40c37f
cmp rax, 8
mov qword [r13 + 0xe8], rbx
jb 0x40c3ab
mov rdi, qword [rdi]
mov rcx, r13
mov word [rdi], bx
call fcn.00409680
jmp 0x40cbf3
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.0040e710
cmp qword [r13 + 0xf0], 8
mov qword [r13 + 0xe8], r12
jb 0x40c3e6
mov rdi, qword [rdi]
mov word [rdi + rbx], 0
mov rcx, r13
call fcn.00409680
jmp 0x40cbf3
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 [0x004219d4]
xor eax, eax
lea rdi, [rsp + 0x880]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rcx, 0xffffffffffffffff
mov dword [rdi - 2], edx
lea rdi, [rsp + 0x880]
repne scasw ax, word [rdi]
mov rax, qword [str.WanNengWBInput]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00421fe0]
mov qword [rdi + 6], rax
mov rax, qword [0x00421fe8]
mov qword [rdi + 0xe], rax
mov eax, dword [0x00421ff0]
mov dword [rdi + 0x16], eax
movzx eax, word [0x00421ff4]
mov word [rdi + 0x1a], ax
lea rdi, [rsp + 0x880]
xor eax, eax
repne scasw ax, word [rdi]
mov rcx, rbx
mov dword [rdi - 2], edx
nop
nop
movzx eax, word [rsp + rcx + 0x880]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x40c4a0
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x40c4c0
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.9.6.1.0920]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00422a70]
mov qword [rdi + 6], rax
mov eax, dword [0x00422a78]
mov dword [rdi + 0xe], eax
movzx eax, word [0x00422a7c]
mov word [rdi + 0x12], ax
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 0x40c808
lea rcx, [rsp + 0x462]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x460], bx
call fcn.0040e3f0
mov rdx, rbx
nop
nop
movzx eax, word [rsp + rdx + 0x40]
add rdx, 2
test ax, ax
mov word [rsp + rdx + 0x45e], ax
jne 0x40c560
xor eax, eax
lea rdi, [rsp + 0x460]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.WnConfig.exe]
lea rcx, [rsp + 0x460]
mov qword [rdi - 2], rax
mov rax, qword [0x00422a50]
mov qword [rdi + 6], rax
mov rax, qword [0x00422a58]
mov qword [rdi + 0xe], rax
movzx eax, word [0x00422a60]
mov word [rdi + 0x16], ax
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40c808
mov rdx, qword [r13 + 0xc8]
xor eax, eax
lea rdi, [rsp + 0x250]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40c600
lea rdi, [r13 + 0xb0]
mov rax, qword [rdi]
jmp 0x40c60a
lea rdi, [r13 + 0xb0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x40c679
cmp rdx, 8
jb 0x40c62c
mov rcx, qword [rdi]
jmp 0x40c62f
mov rcx, rdi
mov rax, qword [r13 + 0xc0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x40c679
cmp rdx, 8
jb 0x40c650
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xa8]
lea rcx, [r13 + 0xa8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
jmp 0x40c709
cmp r12, rbp
jbe 0x40c683
call fcn.0040e230
mov rax, qword [r13 + 0xc8]
cmp rax, r12
jae 0x40c6bc
mov r8, qword [r13 + 0xc0]
lea rcx, [r13 + 0xa8]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40c709
mov rdx, qword [r13 + 0xc8]
cmp rdx, 8
jb 0x40c6d6
mov rcx, qword [rdi]
jmp 0x40c6d9
test r12, r12
jne 0x40c6a5
cmp rax, 8
mov qword [r13 + 0xc0], rbx
jb 0x40c6d1
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x40c709
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.0040e710
cmp qword [r13 + 0xc8], 8
mov qword [r13 + 0xc0], r12
jb 0x40c704
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0xf0]
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40c73a
lea rdi, [r13 + 0xd8]
mov rax, qword [rdi]
jmp 0x40c744
lea rdi, [r13 + 0xd8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x40c780
cmp rdx, 8
jb 0x40c759
mov rcx, qword [rdi]
jmp 0x40c75c
mov rcx, rdi
mov rax, qword [r13 + 0xe8]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x40c780
cmp rdx, 8
jb 0x40be8a
jmp 0x40be87
cmp r12, rbp
jbe 0x40c78a
call fcn.0040e230
mov rax, qword [r13 + 0xf0]
cmp rax, r12
jae 0x40c7ae
mov r8, qword [r13 + 0xe8]
lea rcx, [r13 + 0xd0]
mov rdx, r12
call fcn.00401420
jmp 0x40c7b7
test r12, r12
je 0x40befc
test r12, r12
je 0x40cbf3
mov rdx, qword [r13 + 0xf0]
cmp rdx, 8
jb 0x40c7d2
mov rcx, qword [rdi]
jmp 0x40c7d5
mov rcx, rdi
lea rbx, [r12 + r12]
lea r8, [rsp + 0x40]
add rdx, rdx
mov r9, rbx
call fcn.0040e710
mov qword [r13 + 0xe8], r12
cmp qword [r13 + 0xf0], 8
jb 0x40c7fd
mov rdi, qword [rdi]
mov word [rdi + rbx], 0
jmp 0x40cbf3
lea rcx, [rsp + 0xca0]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40cab8
mov rcx, rbx
movzx eax, word [rsp + rcx + 0xca0]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x40c821
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0x250]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x3e], ax
jne 0x40c840
mov rdx, qword [r13 + 0xc8]
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.9.6.1.0920]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00422a70]
mov qword [rdi + 6], rax
mov eax, dword [0x00422a78]
mov dword [rdi + 0xe], eax
movzx eax, word [0x00422a7c]
mov word [rdi + 0x12], ax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x004219d4]
mov 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 0x40c8df
lea rdi, [r13 + 0xb0]
mov rax, qword [rdi]
jmp 0x40c8e9
lea rdi, [r13 + 0xb0]
mov rax, rdi
lea rcx, [rsp + 0x250]
movabs rbp, 0x7ffffffffffffffe
cmp rcx, rax
jb 0x40c958
cmp rdx, 8
jb 0x40c90b
mov rcx, qword [rdi]
jmp 0x40c90e
mov rcx, rdi
mov rax, qword [r13 + 0xc0]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x250]
cmp rcx, rax
jbe 0x40c958
cmp rdx, 8
jb 0x40c92f
mov rdi, qword [rdi]
lea r8, [rsp + 0x250]
lea rdx, [r13 + 0xa8]
lea rcx, [r13 + 0xa8]
sub r8, rdi
mov r9, r12
sar r8, 1
call fcn.00401a30
jmp 0x40c9e8
cmp r12, rbp
jbe 0x40c962
call fcn.0040e230
mov rax, qword [r13 + 0xc8]
cmp rax, r12
jae 0x40c99b
mov r8, qword [r13 + 0xc0]
lea rcx, [r13 + 0xa8]
mov rdx, r12
call fcn.00401420
test r12, r12
je 0x40c9e8
mov rdx, qword [r13 + 0xc8]
cmp rdx, 8
jb 0x40c9b5
mov rcx, qword [rdi]
jmp 0x40c9b8
test r12, r12
jne 0x40c984
cmp rax, 8
mov qword [r13 + 0xc0], rbx
jb 0x40c9b0
mov rdi, qword [rdi]
mov word [rdi], bx
jmp 0x40c9e8
mov rcx, rdi
lea r14, [r12 + r12]
lea r8, [rsp + 0x250]
add rdx, rdx
mov r9, r14
call fcn.0040e710
cmp qword [r13 + 0xc8], 8
mov qword [r13 + 0xc0], r12
jb 0x40c9e3
mov rdi, qword [rdi]
mov word [rdi + r14], bx
mov rdx, qword [r13 + 0xf0]
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea r12, [rcx - 1]
jb 0x40ca19
lea rdi, [r13 + 0xd8]
mov rax, qword [rdi]
jmp 0x40ca23
lea rdi, [r13 + 0xd8]
mov rax, rdi
lea rcx, [rsp + 0x40]
cmp rcx, rax
jb 0x40ca5f
cmp rdx, 8
jb 0x40ca38
mov rcx, qword [rdi]
jmp 0x40ca3b
mov rcx, rdi
mov rax, qword [r13 + 0xe8]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x40]
cmp rcx, rax
jbe 0x40ca5f
cmp rdx, 8
jb 0x40be8a
jmp 0x40be87
cmp r12, rbp
jbe 0x40ca69
call fcn.0040e230
mov rax, qword [r13 + 0xf0]
cmp rax, r12
jae 0x40ca8d
mov r8, qword [r13 + 0xe8]
lea rcx, [r13 + 0xd0]
mov rdx, r12
call fcn.00401420
jmp 0x40ca96
test r12, r12
je 0x40befc
test r12, r12
je 0x40cbf3
mov rdx, qword [r13 + 0xf0]
cmp rdx, 8
jb 0x40c7d2
mov rcx, qword [rdi]
jmp 0x40c7d5
lea rcx, [rsp + 0xa90]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40cb08
mov rcx, rbx
nop
movzx eax, word [rsp + rcx + 0xa90]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x40cad0
nop
nop
movzx eax, word [rsp + rbx + 0x250]
add rbx, 2
test ax, ax
mov word [rsp + rbx + 0x3e], ax
jne 0x40caf0
jmp 0x40cb46
mov rcx, rbx
nop
nop
movzx eax, word [rsp + rcx + 0x880]
add rcx, 2
test ax, ax
mov word [rsp + rcx + 0x24e], ax
jne 0x40cb10
nop
nop
movzx eax, word [rsp + rbx + 0x250]
add rbx, 2
test ax, ax
mov word [rsp + rbx + 0x3e], ax
jne 0x40cb30
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
repne scasw ax, word [rdi]
mov rax, qword [str.9.6.1.0920]
mov rcx, 0xffffffffffffffff
mov qword [rdi - 2], rax
mov rax, qword [0x00422a70]
lea rdx, [rsp + 0x250]
mov qword [rdi + 6], rax
mov eax, dword [0x00422a78]
mov dword [rdi + 0xe], eax
movzx eax, word [0x00422a7c]
mov word [rdi + 0x12], ax
xor eax, eax
lea rdi, [rsp + 0x40]
repne scasw ax, word [rdi]
mov eax, dword [0x004219d4]
mov 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 + 0xa8]
call fcn.00401c40
xor eax, eax
lea rdi, [rsp + 0x40]
mov rcx, 0xffffffffffffffff
lea rdx, [rsp + 0x40]
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [r13 + 0xd0]
call fcn.00401c40
mov r14, qword [rsp + 0x10d8]
mov r13, qword [rsp + 0x10e0]
mov r12, qword [rsp + 0x10e8]
mov rdi, qword [rsp + 0x10f0]
mov rsi, qword [rsp + 0x1118]
mov rbp, qword [rsp + 0x1110]
mov rbx, qword [rsp + 0x1108]
mov rcx, qword [rsp + 0x10c0]
xor rcx, rsp
call fcn.0040e5d0
add rsp, 0x10f8
ret