Function at 0x180049e90
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push r14
lea rbp, [rsp - 0x1b48]
mov eax, 0x1c48
call fcn.18006ece0
sub rsp, rax
mov eax, edx
mov r14, rcx
add edx, 0xe
mov dword [rsp + 0x60], edx
cmp eax, edx
jae 0x18004b2ce
mov qword [rsp + 0x1c40], rbx
lea r8, [0x180000000]
mov ebx, dword [rbp - 0x5c]
lea r9, [0x1800d59f0]
mov qword [rsp + 0x1c38], rsi
xor esi, esi
mov qword [rsp + 0x1c30], rdi
mov edi, dword [rbp - 0x58]
mov qword [rsp + 0x1c28], r12
mov qword [rsp + 0x1c20], r13
lea r12d, [rsi + 2]
mov r13, qword [rbp - 0x78]
lea r10d, [rsi + 1]
mov qword [rsp + 0x1c18], r15
lea r11d, [rsi + 3]
mov r15, qword [rbp - 0x80]
nop
add eax, 0xfffffff8
cmp eax, 0x18
ja case.0x180049f37.11
mov ecx, dword [r8 + rax*4 + 0x4b2dc]
add rcx, r8
jmp rcx
lea rax, [rbp - 0x38]
mov r9d, 0x20019
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, [rbp + 0xb0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x18004a7a1
mov rcx, qword [rbp - 0x38]
lea rax, [rbp]
mov qword [rsp + 0x58], rsi
xor r9d, r9d
mov qword [rsp + 0x50], rsi
xor r8d, r8d
mov qword [rsp + 0x48], rsi
xor edx, edx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x48]
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x18004a797
mov eax, dword [rbp - 0x48]
lea rdx, [rbp + 0x7c0]
mov r8d, 0xff
mov dword [rbp + 0x1b70], eax
lea rcx, [rbp + 0x1b70]
call fcn.180020da0
mov eax, dword [rbp - 0x48]
lea rcx, [rbp + 8]
mov r12d, dword [rbp - 0x28]
lea r9, [rbp - 0x60]
mov qword [rsp + 0x38], rcx
lea r8, [rbp + 0x1710]
mov rcx, qword [rbp - 0x38]
mov edx, r12d
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rsi
mov qword [rbp - 0x10], rax
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
je 0x18004a78a
mov r15d, dword [rbp - 0x44]
mov r13d, 0x612f6e
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rbp - 0x38]
lea rax, [rbp - 0x30]
mov r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
lea rdx, [rbp + 0x1710]
inc r12d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x18004a732
xor r9d, r9d
lea r14d, [rax + 0x16]
mov esi, r9d
nop dword [rax + rax]
cmp esi, 0x15
ja case.default.0x18004a08c
lea rdx, [0x180000000]
mov eax, esi
mov ecx, dword [rdx + rax*4 + 0x4b340]
add rcx, rdx
jmp rcx
mov rcx, qword [rbp - 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor r9d, r9d
jmp case.default.0x18004a08c
mov eax, dword [rbp + 0x70]
mov dword [rbp + 0xf0], eax
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x5c0]
dec rcx
nop dword [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a0c0
lea r8, [rbp + 0x3b0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a0e0
movzx ecx, word [rbp - 0x1a]
lea rdx, [rbp + 0x1b78]
mov r8d, 0xa
call fcn.1800743d0
movzx ecx, word [rbp - 0x1e]
lea rdx, [rbp - 0x64]
mov r8d, 0xa
call fcn.1800743d0
movzx ecx, word [rbp - 0x20]
lea rdx, [rbp + 0x60]
mov r8d, 0xa
call fcn.1800743d0
xor r9d, r9d
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x5c0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a140
movzx eax, word [0x18009f5fc]
jmp 0x18004a721
movups xmm0, xmmword [rbp + 0x7c]
movups xmmword [rbp + 0x134], xmm0
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x2b0]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a170
lea r8, [rbp + 0x1b78]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a190
lea rcx, [rbp + 0x2b0]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a1b0
movzx eax, word [0x18009f600]
jmp 0x18004a721
lea rcx, [rbp + 0xa0]
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
xor r9d, r9d
jmp case.default.0x18004a08c
mov dword [rsp + 0x70], 0x2c
jmp case.default.0x18004a08c
mov rcx, r9
nop dword [rax + rax]
movzx eax, byte [rbp + rcx - 0x64]
mov byte [rbp + rcx + 0x2b0], al
lea rcx, [rcx + 1]
test al, al
jne 0x18004a1f0
lea rcx, [rbp + 0x2b0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a210
movzx eax, word [0x18009f600]
jmp 0x18004a721
lea rcx, [rbp + 0xdf0]
mov edx, 2
lea rax, [rbp + 0x7c0]
nop dword [rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004a240
mov eax, dword [rax]
mov dword [rcx], eax
lea rcx, [rbp + 0x5c0]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], 0
jne 0x18004a2a5
mov qword [rbp + 0x1b70], rax
lea r9, [rbp - 0x28]
mov eax, r15d
lea r8, [rbp + 0xdf0]
mov qword [rbp - 0x28], rax
lea rcx, [rbp + 0x5c0]
lea rax, [rbp + 0x1b70]
mov edx, 0xeb
mov qword [rsp + 0x20], rax
call fcn.180032ba0
xor r9d, r9d
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x2b0]
dec rcx
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a2f6
lea r8, [rbp + 0x60]
xor edx, edx
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a310
lea rcx, [rbp + 0x5c0]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a330
movzx eax, word [0x18009f5fc]
mov word [rcx], ax
lea rcx, [rbp + 0x5c0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a350
lea r8, [rbp + 0x2b0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a370
mov rcx, r9
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rbp + rcx + 0xae0]
mov byte [rbp + rcx + 0x5c0], al
lea rcx, [rcx + 1]
test al, al
jne 0x18004a390
jmp case.default.0x18004a08c
mov r8d, dword [rsp + 0x70]
lea rdx, [rbp + 0xcf0]
lea rcx, [rbp + 0x148]
call fcn.180075588
mov rcx, qword [rbp - 0x30]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rdx, [0x18009f608]
lea rax, [rbp + 0x9e0]
mov dword [rsp + 0x70], 0xff
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ecx, dword [rbp + 0x9e0]
lea rdx, [rbp + 0x9e0]
mov r8d, dword [rsp + 0x70]
test eax, eax
cmovne ecx, r13d
mov dword [rbp + 0x9e0], ecx
lea rcx, [rbp + 0xf4]
call fcn.180075588
xor r9d, r9d
jmp case.default.0x18004a08c
mov rcx, qword [rbp - 0x30]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rdx, [0x18009f610]
lea rax, [rbp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor r9d, r9d
jmp case.default.0x18004a08c
mov dword [rsp + 0x70], 0xff
jmp case.default.0x18004a08c
mov rcx, r9
nop dword [rax]
movzx eax, byte [rbp + rcx + 0xae0]
mov byte [rbp + rcx + 0x5c0], al
lea rcx, [rcx + 1]
test al, al
jne 0x18004a470
mov rcx, qword [rbp - 0x30]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rdx, [0x18009f618]
lea rax, [rbp + 0xcf0]
mov dword [rsp + 0x70], 0xff
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x18004a098
mov dword [rbp + 0xcf0], r13d
xor r9d, r9d
jmp case.default.0x18004a08c
mov rcx, qword [rbp - 0x30]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x28], rax
lea rdx, str.Display
lea rax, [rbp + 0xae0]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x18004a098
mov dword [rbp + 0xae0], r13d
xor r9d, r9d
jmp case.default.0x18004a08c
movzx ecx, word [rbp - 0x18]
lea rdx, [rbp - 0x68]
mov r8d, 0xa
call fcn.1800743d0
xor r9d, r9d
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x5c0]
dec rcx
nop dword [rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a540
lea r8, [rbp + 0x3b0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a560
lea rcx, [rbp + 0x5c0]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a580
movzx eax, word [0x18009f5fc]
mov word [rcx], ax
lea rcx, [rbp + 0x5c0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a5a0
lea r8, [rbp + 0x2b0]
xor edx, edx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a5c0
jmp case.default.0x18004a08c
lea rcx, [rbp + 0x3b0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a5e0
lea r8, [rbp - 0x70]
xor edx, edx
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a5f0
lea rcx, [rbp + 0x3b0]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a610
movzx eax, word [0x18009f630]
mov word [rcx], ax
lea rcx, [rbp + 0x3b0]
dec rcx
nop
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a630
lea r8, [rbp - 0x6c]
xor edx, edx
movzx eax, byte [r8 + rdx]
mov byte [rcx + rdx], al
lea rdx, [rdx + 1]
test al, al
jne 0x18004a640
lea rcx, [rbp + 0x5c0]
dec rcx
nop word [rax + rax]
cmp byte [rcx + 1], 0
lea rcx, [rcx + 1]
jne 0x18004a660
movzx eax, word [0x18009f5fc]
jmp 0x18004a721
lea r8, [rbp - 0x20]
lea rdx, [rbp + 0xa0]
lea rcx, [rbp + 0xf0]
call qword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
xor r9d, r9d
jmp case.default.0x18004a08c
mov eax, dword [rbp + 0x78]
movups xmm0, xmmword [rbp + 0x8c]
mov dword [rbp + 0x198], eax
mov eax, dword [rbp + 0x74]
movups xmmword [rbp + 0x188], xmm0
mov dword [rbp + 0x144], eax
jmp case.default.0x18004a08c
movzx ecx, word [rbp - 0x16]
lea rdx, [rbp - 0x70]
mov r8d, 0xa
call fcn.1800743d0
movzx ecx, word [rbp - 0x14]
lea rdx, [rbp - 0x6c]
mov r8d, 0xa
call fcn.1800743d0
xor r9d, r9d
mov ecx, r9d
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rbp + rcx - 0x68]
mov byte [rbp + rcx + 0x3b0], al
lea rcx, [rcx + 1]
test al, al
jne 0x18004a6f0
lea rcx, [rbp + 0x3b0]
dec rcx
nop
cmp byte [rcx + 1], r9b
lea rcx, [rcx + 1]
jne 0x18004a710
movzx eax, word [0x18009f630]
mov word [rcx], ax
inc esi
sub r14, 1
jne 0x18004a070
xor esi, esi
mov rcx, qword [rbp - 0x38]
lea rax, [rbp + 8]
mov qword [rsp + 0x38], rax
lea r9, [rbp - 0x60]
mov qword [rsp + 0x30], rsi
lea r8, [rbp + 0x1710]
mov qword [rsp + 0x28], rsi
mov edx, r12d
mov qword [rsp + 0x20], rsi
inc r15d
mov dword [rbp - 0x60], 0x400
call qword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
cmp eax, 0x103
jne 0x18004a030
mov r14, qword [rbp + 0x1b60]
mov r13, qword [rbp - 0x78]
mov dword [rbp - 0x44], r15d
mov r15, qword [rbp - 0x80]
inc r12d
mov dword [rbp - 0x28], r12d
mov r12d, 2
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, [rbp + 0xf00]
mov rdx, r12
lea rax, [rbp + 0x7c0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004a7b2
mov eax, dword [rax]
lea r8d, [rdx + 0x1d]
mov dword [rcx], eax
lea r9, [rsp + 0x78]
mov eax, 1
mov byte [rbp + 0x1b70], dl
mov word [rsp + 0x78], ax
lea rdx, [rbp + 0x1b70]
mov rax, qword [r14]
lea rcx, [rbp + 0xf00]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
call fcn.180012d20
mov rax, qword [rbp - 0x10]
mov dword [rbp + 0x1b70], eax
mov rax, qword [r14]
lea rdx, [rbp + 0x1b70]
mov r8d, 0x92
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x68]
call fcn.18004ff10
mov edx, dword [rsp + 0x60]
jmp case.0x180049f37.11
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x10], xmm0
mov qword [rbp + 0x50], rax
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
jmp case.0x180049f37.11
movups xmm1, xmmword [str.FMJP_D_Vision_JPEG_4CC_V___D_Vision_fieldbased_ISO_JPEG]
xor eax, eax
mov dword [rbp - 0x44], r10d
movups xmm2, xmmword [0x18009f648]
mov dword [rbp + 0xe8], eax
movups xmm3, xmmword [0x18009f658]
mov dword [rbp - 0x28], esi
movsd xmm0, qword [0x18009f668]
movups xmmword [rbp + 0xb0], xmm1
mov dword [rbp - 0x60], 0x400
movups xmmword [rbp + 0xc0], xmm2
movups xmmword [rbp + 0xd0], xmm3
movsd qword [rbp + 0xe0], xmm0
jmp case.0x180049f37.11
mov dword [rbp + 0x10], 0x48
jmp case.0x180049f37.11
cmp r13, 0xff
mov rax, rsi
cmovle rax, r13
cmp qword [rbp - 0x50], 0xff
mov r13, rax
mov qword [rbp - 0x78], rax
mov rax, rsi
cmovle rax, qword [rbp - 0x50]
cmp qword [rbp - 8], 1
mov qword [rbp - 0x50], rax
jne 0x18004ad12
mov eax, 5
lea r9, [rsp + 0x68]
mov word [rbp + 0x1b70], ax
lea r8, [rbp + 0x1b70]
mov rax, qword [r14]
lea rcx, [rbp + 0x8d0]
mov edx, 0xc2
mov qword [rsp + 0x68], rax
call fcn.180010500
lea rcx, [rbp + 0x1a0]
mov edx, 2
lea rax, [rbp + 0x8d0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004a970
mov eax, dword [rax]
mov esi, 0x5d
mov r14d, dword [rbp + 0x8d0]
xor r12d, r12d
mov dword [rcx], eax
nop word [rax + rax]
cmp esi, 0xc7d4
ja 0x18004ab3a
je 0x18004ab27
mov eax, esi
sub eax, 0x5d
je 0x18004aba6
sub eax, 0x8f
je 0x18004ab1e
sub eax, 0x19
je 0x18004ab05
cmp eax, 0xb3ab
jne 0x18004ab8f
xor r14d, r14d
mov r12d, 2
cmp edi, 0x10
jne 0x18004acb0
mov rsi, r14
lea rcx, [rbp + 0xbe0]
lea rax, [rbp + 0x1a0]
mov edx, r12d
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004aa42
mov eax, dword [rax]
lea rdx, [rbp + 0xbe0]
mov dword [rcx], eax
xor r9d, r9d
mov ecx, 0xcb
xor r8d, r8d
call fcn.180018e70
test eax, eax
jle 0x18004acb0
lea r15, [0x1800d59f0]
nop
mov r8, qword [rbp + 0x1a6]
lea r9d, [rsi + 1]
mov r10d, dword [rbp + 0x1a2]
mov ecx, 0x10
movzx r11d, byte [rbp + 0x1a0]
movsxd rdx, esi
inc rdx
cmp ecx, 0x10
je 0x18004abe3
cmp ecx, 0x2f
je 0x18004abd9
cmp ecx, 0x7d
je 0x18004ac17
jmp 0x18004ac08
mov word [rbp + 0x1568], r14w
mov ax, word [pe_dos_header]
mov word [rbp + 0x156a], ax
jmp 0x18004ab8f
mov edi, r14d
mov dword [rbp - 0x58], r14d
jmp 0x18004ab8f
mov dword [rbp + 0x167c], 0xffffffff
mov dword [rbp + 0x1680], r12d
jmp 0x18004ab8f
cmp esi, 0x18ea3
je 0x18004ab7b
cmp esi, 0x25572
jne 0x18004ab8f
mov ecx, 0xfffffff4
mov qword [rbp + 0x1672], r12
lea rdx, [rbp + 0x1120]
mov word [rbp + 0x167a], r12w
call qword [0x1800d5910]
movzx eax, word [rbp + 0x167a]
mov word [0x1800d5918], ax
jmp 0x18004ab8f
movsx eax, word [0x1800d591c]
mov dword [rbp + 0x1688], eax
mov dword [rbp + 0x1684], r12d
add esi, 0x46d7
cmp esi, 0x27d8f
jbe 0x18004a9e0
jmp 0x18004aa1c
movsx eax, r14b
lea rdx, [rbp + 0x1b70]
xor r14d, r14d
mov dword [rbp + 0x1b70], eax
mov r9d, 0x143
mov qword [rsp + 0x20], r14
xor r8d, r8d
xor ecx, ecx
call fcn.180024e20
mov edi, eax
mov dword [rbp - 0x58], eax
jmp 0x18004aa1f
mov word [0x1800d591c], r14w
jmp 0x18004ac08
lea eax, [r11 - 0x10]
mov ebx, r14d
test al, 0xef
jne 0x18004ac03
test r8, r8
je 0x18004ac03
test rdx, rdx
js 0x18004ac03
cmp r9d, r10d
jg 0x18004ac03
mov rax, qword [r8]
mov ebx, dword [rax + rdx*4]
mov ecx, 0x10
add ecx, 0x6d
cmp ecx, 0x157
jb 0x18004aae5
mov dword [r15 + rsi*4], ebx
lea rcx, [rbp + 0xbe0]
inc rsi
mov dword [rbp - 0x5c], ebx
lea rax, [rbp + 0x1a0]
mov rdx, r12
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004ac32
mov eax, dword [rax]
lea rdx, [rbp + 0xbe0]
mov dword [rcx], eax
xor r9d, r9d
mov ecx, 0xcb
xor r8d, r8d
call fcn.180018e70
movsxd rcx, eax
cmp rsi, rcx
jl 0x18004aac0
mov r15, qword [rbp - 0x80]
mov r14, qword [rbp + 0x1b60]
mov edx, dword [rsp + 0x60]
jmp case.0x180049f37.11
mov rdx, qword [rbp - 0x40]
mov r13, qword [rbp - 0x78]
mov r12, qword [rbp - 0x50]
test rdx, rdx
jg 0x18004acee
test r13, r13
jg 0x18004acee
test r12, r12
jg 0x18004acee
mov edx, dword [rsp + 0x60]
mov r12d, 2
mov dword [rbp + 0x38], r12d
jmp case.0x180049f37.11
movzx ecx, r13b
mov r13, qword [rbp - 0x78]
shl ecx, 8
movzx eax, r12b
shl eax, 0x10
or ecx, eax
mov dword [rbp + 0x38], r11d
movzx eax, dl
mov edx, dword [rsp + 0x60]
or ecx, eax
mov dword [rbp + 0x28], ecx
mov r12d, 2
jmp case.0x180049f37.11
mov rax, qword [0x1800c56b0]
mov qword [rbp + 0x18], rax
jmp case.0x180049f37.11
mov r15, rsi
mov qword [rbp - 0x80], rsi
jmp case.0x180049f37.11
mov rax, qword [r14]
lea r9, [rbp + 0x1b70]
xor edx, edx
mov word [rbp + 0x1b70], r11w
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x20], rsi
lea r8d, [rdx + 0x28]
call fcn.180068730
cdqe
lea r9, [rbp + 0x1b70]
mov qword [rbp - 0x50], rax
lea rcx, [rsp + 0x68]
xor edx, edx
mov qword [rsp + 0x20], rsi
mov eax, 4
mov word [rbp + 0x1b70], ax
mov rax, qword [r14]
lea r8d, [rdx + 0x28]
mov qword [rsp + 0x68], rax
call fcn.180068730
cmp qword [rbp - 0x40], 0xff
mov edx, dword [rsp + 0x60]
cdqe
mov qword [rbp - 8], rax
mov rax, rsi
cmovle rax, qword [rbp - 0x40]
mov qword [rbp - 0x40], rax
jmp case.0x180049f37.11
mov dword [rbp + 0x1b70], r15d
jmp 0x18004a851
mov rax, qword [r14]
lea r9, [rsp + 0x68]
lea r8, [rbp + 0x1b70]
mov qword [rsp + 0x68], rax
mov edx, 0xc2
mov word [rbp + 0x1b70], r10w
lea rcx, [rbp + 0x8d0]
call fcn.180010500
lea rcx, [rbp + 0x7c0]
mov rdx, r12
lea rax, [rbp + 0x8d0]
nop dword [rax + rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004ae10
mov eax, dword [rax]
lea rdx, [rbp + 0x7c0]
mov dword [rcx], eax
mov r8d, 0xff
lea rcx, [rbp + 0x1b70]
mov dword [rbp + 0x1b70], esi
call fcn.180020da0
mov edx, dword [rsp + 0x60]
mov qword [rbp - 0x10], 0xffffffffffffffff
jmp case.0x180049f37.11
lea rcx, [rbp + 0x10]
call qword [sym.imp.COMDLG32.dll_ChooseColorW]
cmp eax, 1
jne 0x18004a870
mov esi, 0x10
lea edi, [rax + 2]
mov dword [rbp - 0x80], esi
lea ebx, [rax + 4]
nop dword [rax + rax]
cmp esi, 0x10
je 0x18004b1b9
cmp esi, 0x24
je 0x18004b19f
cmp esi, 0x38
je 0x18004b136
cmp esi, 0x4c
jne 0x18004b1c9
mov rax, qword [rbp - 0x50]
lea r9, [rsp + 0x78]
mov dword [rsp + 0x78], eax
lea r8, [rsp + 0x68]
mov rax, qword [r14]
lea edx, [rsi - 0x25]
lea rcx, [rbp + 0x1b70]
mov qword [rsp + 0x68], rax
mov word [rbp + 0x1b70], di
call fcn.180030a70
cmp qword [rbp - 8], 1
jne 0x18004b12b
mov r8d, 0xff
mov dword [rbp + 0x1b70], 0x10
lea rdx, [rbp + 0x1a0]
lea rcx, [rbp + 0x1b70]
call fcn.180020da0
xor r8d, r8d
mov r13d, r8d
nop dword [rax + rax]
lea rcx, [rbp + 0x4b0]
mov rdx, r12
lea rax, [rbp + 0x1a0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004af61
mov eax, dword [rax]
lea r15d, [r13 + 1]
mov dword [rcx], eax
mov esi, 0xe0
lea rax, [0x1800d59f0]
movsxd r14, r13d
mov r12d, dword [rax + r13*4]
inc r14
mov eax, esi
sub eax, 0xdd
je 0x18004b019
sub eax, 1
je 0x18004b068
cmp eax, 2
jne 0x18004b04e
movzx eax, byte [rbp + 0x4b0]
sub al, 0x10
test al, 0xef
jne 0x18004b04e
mov rax, qword [rbp + 0x4b6]
test rax, rax
je 0x18004b04e
test r14, r14
js 0x18004b04e
cmp r15d, dword [rbp + 0x4b2]
jg 0x18004b04e
mov rax, qword [rax]
mov dword [rax + r14*4], r12d
jmp 0x18004b04e
mov qword [rsp + 0x20], r8
xor r9d, r9d
xor r8d, r8d
mov edx, 0x12c
xor ecx, ecx
call fcn.18005c350
lea rdx, [rbp + 0x4b0]
test al, al
je 0x18004b05e
xor r9d, r9d
xor r8d, r8d
mov ecx, 0x133
call fcn.180016870
xor r8d, r8d
inc esi
cmp esi, 0xe3
jb 0x18004afd2
jmp 0x18004b068
mov ecx, 0x47
call fcn.1800360e0
mov r8d, 0
inc r13
lea r12d, [r8 + 2]
cmp r13, 0x10
jl 0x18004af50
lea rcx, [rbp + 0x1010]
mov edx, r12d
lea rax, [rbp + 0x1a0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rdx, 1
jne 0x18004b090
mov eax, dword [rax]
lea r9, [rsp + 0x78]
mov r14, qword [rbp + 0x1b60]
mov dword [rcx], eax
lea rcx, [rbp + 0x1010]
mov byte [rbp + 0x1b70], r8b
lea r8d, [rdx + 0x1d]
lea rdx, [rbp + 0x1b70]
mov word [rsp + 0x78], bx
mov rax, qword [r14]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
call fcn.180012d20
mov esi, dword [rbp - 0x80]
mov r15d, 1
jmp 0x18004b1c9
mov rax, qword [rbp - 0x40]
lea r9, [rbp - 0x80]
mov dword [rbp - 0x80], eax
lea r8, [rsp + 0x68]
mov eax, 1
lea rcx, [rbp + 0x1b70]
mov word [rbp + 0x1b70], ax
mov edx, 0x27
mov rax, qword [r14]
mov qword [rsp + 0x68], rax
call fcn.180030a70
mov rax, qword [r14]
lea r9, [rbp - 0x80]
mov r13, qword [rbp - 0x78]
lea r8, [rsp + 0x68]
mov edx, 0x27
mov qword [rsp + 0x68], rax
lea rcx, [rbp + 0x1b70]
mov dword [rbp - 0x80], r13d
mov word [rbp + 0x1b70], r12w
call fcn.180030a70
jmp 0x18004b1c9
movzx r13d, byte [0x1800d5a31]
movzx r12d, byte [0x1800d5a32]
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x50], r12
jmp 0x18004b1c9
mov eax, dword [rbp + 0x28]
movzx edx, al
mov qword [rbp - 0x40], rdx
mov dword [0x1800d5a30], eax
add esi, 0x14
mov r12d, 2
mov dword [rbp - 0x80], esi
cmp esi, 0x60
jb 0x18004aec0
mov ebx, dword [rbp - 0x5c]
mov edi, dword [rbp - 0x58]
mov r13, qword [rbp - 0x78]
mov edx, dword [rsp + 0x60]
mov qword [rbp - 0x80], r15
jmp case.0x180049f37.11
mov rax, qword [r14]
lea r9, [rbp + 0x1b70]
xor edx, edx
mov word [rbp + 0x1b70], r10w
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x20], rsi
lea r8d, [rdx + 0x28]
call fcn.180068730
cdqe
lea r9, [rbp + 0x1b70]
xor edx, edx
mov qword [rbp - 0x40], rax
mov rax, qword [r14]
lea rcx, [rsp + 0x68]
mov word [rbp + 0x1b70], r12w
mov qword [rsp + 0x68], rax
lea r8d, [rdx + 0x28]
mov qword [rsp + 0x20], rsi
call fcn.180068730
mov edx, dword [rsp + 0x60]
movsxd r13, eax
mov qword [rbp - 0x78], r13
jmp case.0x180049f37.11
mov eax, dword [0x1800d5a30]
mov dword [rbp + 0x28], eax
mov qword [rbp + 0x30], r9
mov eax, dword [rbp + 0x1b68]
lea r8, [0x180000000]
mov esi, 0
lea r9, [0x1800d59f0]
inc eax
mov dword [rbp + 0x1b68], eax
lea r10d, [rsi + 1]
lea r11d, [rsi + 3]
cmp eax, edx
jb 0x180049f20
mov r15, qword [rsp + 0x1c18]
mov r13, qword [rsp + 0x1c20]
mov r12, qword [rsp + 0x1c28]
mov rdi, qword [rsp + 0x1c30]
mov rsi, qword [rsp + 0x1c38]
mov rbx, qword [rsp + 0x1c40]
add rsp, 0x1c48
pop r14
pop rbp
ret