Function at 0x140057e20
Capabilities:
Encode data using xor
Encrypt data using chaskey
Execute anti-debugging instructions
Hash data using murmur3

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x338]
sub rsp, 0x438
mov rax, qword [rbp + 0x3a0]
xor edi, edi
mov qword [rbp + 0x250], rax
mov r15d, r9d
mov dword [rbp + 4], edi
mov r14d, edx
mov dword [rbp + 0x80], r9d
mov r12, rcx
mov qword [rbp + 0x260], r8
mov dword [rbp + 0x88], edx
mov qword [rbp + 0x178], rcx
mov rcx, qword [0x1400a92b0]
lea rax, [0x1400a92b0]
cmp rcx, rax
je 0x140057ea7
test byte [rcx + 0x1c], 0x80
je 0x140057ea7
mov rcx, qword [rcx + 0x10]
lea edx, [rdi + 0x10]
mov dword [rsp + 0x20], r9d
lea r8, [0x14009ce78]
mov r9d, r14d
call fcn.140057a4c
mov qword [rbp + 0x110], rdi
mov dword [rbp + 0x150], edi
mov dword [rbp + 0xd8], edi
mov qword [rbp + 8], rdi
mov dword [rbp + 0x20], edi
mov edx, 4
mov dword [rbp + 0xd0], edi
lea ecx, [rdx + 0x3c]
call qword [sym.imp.KERNEL32.dll_LocalAlloc]
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.14000a714
mov rax, qword [rbp + 8]
mov r13d, 0x8007007a
mov qword [rbp + 0x168], rax
test rax, rax
jne 0x140057f00
lea esi, [r13 - 0x6c]
jmp 0x14005cc5e
xor eax, eax
mov dword [rsp + 0x58], edi
lea r13, [0x1400a93b0]
mov qword [rsp + 0x5c], rax
mov ebx, 0xa0
mov dword [rsp + 0x64], eax
mov qword [rbp - 0xc], rax
mov r15, rdi
mov dword [rbp - 4], eax
mov r14, rdi
mov qword [rbp + 0x2b8], r13
mov qword [rbp + 0x160], rbx
mov dword [rbp + 0x8c], edi
mov dword [rbp - 0x10], edi
mov dword [rbp], edi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
or dword [rbp + 0x10], 0xffffffff
mov esi, 0xc0000017
mov r12, rax
mov ebx, 0x10000000
test rax, rax
je 0x140058579
mov r8, qword [rbp + 0x160]
mov rcx, rax
mov rdx, qword [rbp + 0x2b8]
call sub.msvcrt.dll_memcpy
mov r14d, dword [rbp + 0x160]
mov r15, r12
mov qword [rsp + 0x48], r12
lea rax, [0x1400a94f8]
mov qword [rbp + 0x198], 8
mov qword [rbp + 0x2c0], rax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
mov r8d, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r13, rax
test rax, rax
jne 0x140057fd8
mov r14, rdi
jmp 0x140058572
mov r8, qword [rbp + 0x198]
mov rcx, rax
mov rdx, qword [rbp + 0x2c0]
call sub.msvcrt.dll_memcpy
mov r15, qword [rbp + 0x198]
mov qword [rsp + 0x40], r13
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rbp + 0x1b8], rax
mov edx, 4
mov dword [rsp + 0x38], edi
mov ecx, edx
lea r8, [rsp + 0x30]
call fcn.14000ad5c
mov r11d, dword [rbp - 0x30]
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
lea r8, [rsp + 0x38]
mov edx, r11d
xor ecx, ecx
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
lea r8, [rsp + 0x30]
mov edx, r14d
mov ecx, 4
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
lea r8, [rsp + 0x30]
mov edx, r15d
mov ecx, 4
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
mov edx, 8
lea r8, [rsp + 0x30]
lea ecx, [rdx - 4]
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
lea r8, [rbp - 0x28]
lea rcx, str.Printing_Spooler_Core_Spoolss_Licensing_Enabled
call fcn.14000ad04
test eax, eax
jns 0x140058124
mov esi, 0xc000003e
mov r14, r13
jmp 0x14005856f
mov rax, qword [rbp - 0x28]
lea r8, [rsp + 0x30]
inc rax
mov ecx, 4
lea edx, [rax + rax]
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
mov edx, 4
lea r8, [rsp + 0x30]
mov ecx, edx
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
mov edx, 4
lea r8, [rsp + 0x30]
mov ecx, edx
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r11d, dword [rsp + 0x30]
mov dword [rbp - 0x30], r11d
js 0x14005811c
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
or esi, ebx
jl 0x14005811c
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x5c], eax
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov ebx, 8
mov edx, ebx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9, rax
test rax, rax
jne 0x140058211
mov esi, 0xc0000017
jmp 0x14005811c
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x58], edi
lea rax, [rbp + 0x90]
mov dword [rbp + 0x90], edi
test rax, rax
je 0x140058272
lea r8, [rbp - 0x48]
mov edx, 4
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058277
mov ecx, dword [rsp + 0x5c]
lea rax, [r9 + 8]
add rcx, r9
cmp rax, rcx
jbe 0x14005825d
mov esi, 0xc0000023
jmp 0x14005811c
mov rcx, qword [rbp - 0x48]
mov dword [r9], edx
mov eax, dword [rbp + 0x90]
mov dword [rcx], eax
inc dword [rsp + 0x58]
jmp 0x140058277
mov esi, 0xc000000d
test esi, esi
js 0x14005811c
test r14d, r14d
je 0x14005837d
cmp qword [rsp + 0x60], rdi
jne 0x1400582d7
lea r8, [rsp + 0x30]
mov edx, r14d
mov ecx, 4
call fcn.14000ad5c
mov edx, dword [rbp + 0x34]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0x34], edx
js 0x140058382
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058382
inc dword [rsp + 0x58]
jmp 0x14005838a
mov r11d, edi
mov r9, qword [rsp + 0x60]
mov qword [rsp + 0x50], r9
cmp dword [rsp + 0x58], edi
jbe 0x140058335
mov r10d, dword [rbp + 0x34]
mov edx, dword [r9]
lea r8, [rsp + 0x30]
mov ecx, 4
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r10d, dword [rsp + 0x30]
mov dword [rbp + 0x34], r10d
js 0x140058382
mov edx, r10d
lea r8, [rsp + 0x50]
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058382
mov r9, qword [rsp + 0x50]
inc r11d
cmp r11d, dword [rsp + 0x58]
jb 0x1400582ee
lea r8, [rbp - 0x48]
mov edx, 4
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058382
mov ecx, dword [rsp + 0x5c]
lea rax, [r14 + 4]
add rcx, qword [rsp + 0x60]
add rax, r9
mov r8, r14
cmp rax, rcx
ja 0x140058253
mov rcx, qword [rbp - 0x48]
mov rdx, r12
mov dword [r9], r14d
call sub.msvcrt.dll_memcpy
inc dword [rsp + 0x58]
jmp 0x140058382
mov esi, 0xc000000d
test esi, esi
js 0x14005811c
test r15d, r15d
je 0x140058478
cmp qword [rsp + 0x60], rdi
jne 0x1400583ec
mov r13d, 4
lea r8, [rsp + 0x30]
mov ecx, r13d
mov edx, r15d
call fcn.14000ad5c
mov edx, dword [rbp + 0xa0]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0xa0], edx
js 0x140058483
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058483
inc dword [rsp + 0x58]
jmp 0x14005848b
mov ecx, edi
mov r9, qword [rsp + 0x60]
cmp dword [rsp + 0x58], edi
jbe 0x14005841f
mov eax, dword [r9]
add eax, 4
cmp eax, 4
jb 0x140058471
mov dword [rbp + 0xa0], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x140058467
inc ecx
mov r9, rdx
cmp ecx, dword [rsp + 0x58]
jb 0x1400583f9
lea r8, [rbp - 0x48]
mov edx, 4
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005847d
mov ecx, dword [rsp + 0x5c]
add rcx, qword [rsp + 0x60]
mov r8d, r15d
lea rax, [r8 + 4]
add rax, r9
cmp rax, rcx
ja 0x140058253
mov rcx, qword [rbp - 0x48]
mov rdx, r13
mov dword [r9], r15d
call sub.msvcrt.dll_memcpy
inc dword [rsp + 0x58]
jmp 0x14005847d
mov esi, 0xc0000095
jmp 0x14005811c
mov esi, 0xc0000095
jmp 0x14005847d
mov esi, 0xc000000d
mov r13d, 4
test esi, esi
js 0x14005856a
mov rax, qword [rbp + 0x1b8]
mov qword [rbp + 0x1a8], rax
lea rax, [rbp + 0x1a8]
test rax, rax
je 0x14005889b
cmp qword [rsp + 0x60], rdi
jne 0x1400584fb
lea r8, [rsp + 0x30]
mov edx, ebx
mov ecx, r13d
call fcn.14000ad5c
mov edx, dword [rbp + 0xa4]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0xa4], edx
js 0x1400588a0
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x1400588a0
inc dword [rsp + 0x58]
jmp 0x1400588a8
mov ecx, edi
mov r9, qword [rsp + 0x60]
cmp dword [rsp + 0x58], edi
jbe 0x140058536
mov eax, dword [r9]
add eax, 4
cmp eax, r13d
jb 0x14005887b
mov dword [rbp + 0xa4], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x140058871
inc ecx
mov r9, rdx
cmp ecx, dword [rsp + 0x58]
jb 0x140058508
lea r8, [rbp - 0x48]
mov rdx, r13
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x1400588a0
mov ecx, dword [rsp + 0x5c]
lea rax, [r9 + 0xc]
add rcx, qword [rsp + 0x60]
cmp rax, rcx
jbe 0x140058882
mov esi, 0xc0000023
mov r14, qword [rsp + 0x40]
mov r15, r12
lea r13, [0x1400a93b0]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x58], 0
test rbx, rbx
je 0x1400585a5
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsp + 0x60], rdi
mov rbx, qword [rbp - 8]
mov qword [rbp - 0x10], 0
test rbx, rbx
je 0x1400585ce
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp - 8], rdi
test r15, r15
je 0x1400585e7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14, r14
je 0x140058600
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
js 0x14005cc43
cmp dword [rbp + 0x20], edi
je 0x14005cc02
xor eax, eax
mov dword [rbp - 0x70], edi
mov ebx, 0xa0
mov qword [rbp - 0x6c], rax
mov dword [rbp - 0x64], eax
mov r15, rdi
mov qword [rbp + 0x6c], rax
mov r14, rdi
mov dword [rbp + 0x74], eax
mov qword [rbp + 0x190], rbx
mov dword [rbp + 0x68], edi
mov dword [rbp + 0x38], edi
mov qword [rbp + 0x2a0], r13
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r12, rax
test rax, rax
je 0x14005cb7e
mov r8, qword [rbp + 0x190]
mov rcx, rax
mov rdx, qword [rbp + 0x2a0]
call sub.msvcrt.dll_memcpy
mov r14d, dword [rbp + 0x190]
mov r15, r12
mov qword [rsp + 0x40], r12
lea rax, [0x1400a94f8]
mov qword [rbp + 0x170], 8
mov qword [rbp + 0x258], rax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
mov r8d, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r13, rax
test rax, rax
je 0x14005cb7b
mov r8, qword [rbp + 0x170]
mov rcx, rax
mov rdx, qword [rbp + 0x258]
call sub.msvcrt.dll_memcpy
mov r15, qword [rbp + 0x170]
mov qword [rsp + 0x48], r13
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rbp + 0x1c8], rax
mov r11d, 4
mov dword [rsp + 0x38], edi
mov edx, r11d
lea r8, [rsp + 0x30]
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0x3c], edx
lea r8, [rsp + 0x38]
xor ecx, ecx
call fcn.14000ad5c
mov r9d, 0x10000000
or eax, r9d
jl 0x14005ae09
lea r8, [rsp + 0x30]
mov edx, r14d
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0x3c], edx
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
or eax, r9d
jl 0x14005ae09
lea r8, [rsp + 0x30]
mov edx, r15d
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0x3c], edx
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
or eax, r9d
jl 0x14005ae09
lea r8, [rsp + 0x30]
mov ecx, r11d
lea edx, [r11 + 4]
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0x3c], edx
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
or eax, r9d
jl 0x14005ae09
mov eax, dword [rsp + 0x38]
mov dword [rbp - 0x6c], eax
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r9, rax
test rax, rax
je 0x14005ae09
mov qword [rbp - 0x68], rax
mov dword [rbp - 0x70], edi
lea rax, [rbp + 0x98]
mov r11d, 4
mov dword [rbp + 0x98], r11d
test rax, rax
je 0x14005abb0
lea r8, [rbp - 0x48]
mov edx, r11d
mov rcx, r9
call fcn.14000ad74
test eax, eax
js 0x14005ae09
mov edx, dword [rbp - 0x6c]
lea rcx, [r9 + 8]
add rdx, r9
cmp rcx, rdx
ja 0x14005ae09
mov rdx, qword [rbp - 0x48]
mov dword [r9], r11d
mov ecx, dword [rbp + 0x98]
mov dword [rdx], ecx
inc dword [rbp - 0x70]
jmp 0x14005abb5
mov esi, 0xc0000095
jmp 0x14005856a
mov esi, 0xc0000095
jmp 0x1400588a0
mov rax, qword [rbp - 0x48]
mov dword [r9], ebx
movsd xmm0, qword [rbp + 0x1a8]
movsd qword [rax], xmm0
inc dword [rsp + 0x58]
jmp 0x1400588a0
mov esi, 0xc000000d
test esi, esi
js 0x14005856a
lea r11, str.Printing_Spooler_Core_Spoolss_Licensing_Enabled
mov rcx, r11
lea r8, [rsp + 0x30]
call fcn.14000ad04
test eax, eax
jns 0x1400588ca
mov esi, 0xc000003e
jmp 0x14005856a
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, 1
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058903
mov eax, dword [rsp + 0x30]
lea r10d, [rax + rax]
test r11, r11
jne 0x14005897b
test r10d, r10d
je 0x140058984
mov esi, 0xc000000d
test esi, esi
js 0x14005856a
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0xb0], eax
lea rax, [rbp + 0xb0]
test rax, rax
je 0x140058ae7
cmp qword [rsp + 0x60], rdi
jne 0x140058a69
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
mov edx, dword [rbp + 0x84]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0x84], edx
js 0x140058aec
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058aec
inc dword [rsp + 0x58]
jmp 0x140058af4
test r10d, r10d
je 0x1400588fe
cmp qword [rsp + 0x60], rdi
jne 0x1400589d9
lea r8, [rsp + 0x30]
mov edx, r10d
mov ecx, r13d
call fcn.14000ad5c
mov edx, dword [rbp + 0xd4]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0xd4], edx
js 0x140058903
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058903
inc dword [rsp + 0x58]
mov esi, edi
jmp 0x140058903
mov ecx, edi
mov r9, qword [rsp + 0x60]
cmp dword [rsp + 0x58], edi
jbe 0x140058a0c
mov eax, dword [r9]
add eax, 4
cmp eax, r13d
jb 0x140058a47
mov dword [rbp + 0xd4], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x140058a47
inc ecx
mov r9, rdx
cmp ecx, dword [rsp + 0x58]
jb 0x1400589e6
lea r8, [rbp - 0x48]
mov rdx, r13
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058903
mov ecx, dword [rsp + 0x5c]
lea rax, [r10 + 4]
add rcx, qword [rsp + 0x60]
add rax, r9
mov r8d, r10d
cmp rax, rcx
jbe 0x140058a51
mov esi, 0xc0000023
jmp 0x140058903
mov esi, 0xc0000095
jmp 0x140058903
mov rcx, qword [rbp - 0x48]
mov rdx, r11
mov dword [r9], r10d
call sub.msvcrt.dll_memcpy
inc dword [rsp + 0x58]
jmp 0x140058903
mov ecx, edi
mov r9, qword [rsp + 0x60]
cmp dword [rsp + 0x58], edi
jbe 0x140058aa0
mov eax, dword [r9]
add eax, 4
cmp eax, r13d
jb 0x140058ae0
mov dword [rbp + 0x84], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x140058871
inc ecx
mov r9, rdx
cmp ecx, dword [rsp + 0x58]
jb 0x140058a76
lea r8, [rbp - 0x48]
mov rdx, r13
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058aec
mov ecx, dword [rsp + 0x5c]
lea rax, [r9 + 8]
add rcx, qword [rsp + 0x60]
cmp rax, rcx
ja 0x140058565
mov rcx, qword [rbp - 0x48]
mov dword [r9], r13d
mov eax, dword [rbp + 0xb0]
mov dword [rcx], eax
inc dword [rsp + 0x58]
jmp 0x140058aec
mov esi, 0xc0000095
jmp 0x140058aec
mov esi, 0xc000000d
test esi, esi
js 0x14005856a
lea rax, [rbp + 0xc8]
mov dword [rbp + 0xc8], r13d
test rax, rax
je 0x140058bd3
cmp qword [rsp + 0x60], rdi
jne 0x140058b58
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
mov edx, dword [rbp + 0x78]
test eax, eax
mov esi, eax
cmovns edx, dword [rsp + 0x30]
mov dword [rbp + 0x78], edx
js 0x140058bd8
mov ecx, dword [rsp + 0x5c]
lea r8, [rsp + 0x5c]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058bd8
inc dword [rsp + 0x58]
jmp 0x140058be0
mov ecx, edi
mov r9, qword [rsp + 0x60]
cmp dword [rsp + 0x58], edi
jbe 0x140058b8c
mov eax, dword [r9]
add eax, 4
cmp eax, r13d
jb 0x140058bcc
mov dword [rbp + 0x78], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x140058871
inc ecx
mov r9, rdx
cmp ecx, dword [rsp + 0x58]
jb 0x140058b65
lea r8, [rbp - 0x48]
mov rdx, r13
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058bd8
mov ecx, dword [rsp + 0x5c]
lea rax, [r9 + 8]
add rcx, qword [rsp + 0x60]
cmp rax, rcx
ja 0x140058565
mov rcx, qword [rbp - 0x48]
mov dword [r9], r13d
mov eax, dword [rbp + 0xc8]
mov dword [rcx], eax
inc dword [rsp + 0x58]
jmp 0x140058bd8
mov esi, 0xc0000095
jmp 0x140058bd8
mov esi, 0xc000000d
test esi, esi
js 0x14005856a
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
mov r10d, dword [rbp - 0x2c]
test eax, eax
mov esi, eax
cmovns r10d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r10d
js 0x140058d3a
lea r8, [rsp + 0x30]
mov dword [rsp + 0x38], r10d
mov edx, ebx
call fcn.14000ad5c
test eax, eax
mov r9d, r10d
mov esi, eax
cmovns r9d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r9d
js 0x140058d3a
lea r8, [rsp + 0x38]
mov edx, r9d
mov ecx, r10d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058d3a
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r9d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r9d
js 0x140058d3a
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r9d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058d3a
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r9d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r9d
js 0x140058d3a
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r9d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058d3a
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r9d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r9d
js 0x140058d3a
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r9d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058d3a
lea r8, [rsp + 0x30]
mov edx, r13d
mov ecx, r13d
call fcn.14000ad5c
test eax, eax
mov esi, eax
cmovns r9d, dword [rsp + 0x30]
mov dword [rbp - 0x2c], r9d
js 0x140058d3a
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r9d
call fcn.14000ad5c
mov esi, eax
mov eax, dword [rbp + 4]
test esi, esi
cmovns eax, dword [rsp + 0x38]
jmp 0x140058d3d
mov eax, dword [rbp + 4]
mov dword [rsp + 0x50], eax
test esi, esi
js 0x14005856a
mov r13, rdi
mov qword [rbp + 0x18], rdi
mov r15d, edi
mov qword [rbp + 0xe8], rdi
mov qword [rbp + 0x40], rdi
mov r12d, edi
mov qword [rbp - 0x58], rdi
mov dword [rbp - 0x38], edi
mov qword [rbp + 0x28], rdi
mov qword [rbp - 0x40], rdi
mov dword [rbp - 0x18], edi
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rbp + 0x158], rax
mov dword [rbp - 0x1c], ebx
mov edx, dword [rsp + 0x5c]
lea r8, [rbp - 0x1c]
mov ecx, ebx
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140058e6e
mov eax, dword [rbp - 0x1c]
add rax, 7
and eax, 0xfffffff8
cmp eax, dword [rbp - 0x1c]
jae 0x140058db8
mov esi, 0xc0000095
jmp 0x140058e6e
mov dword [rbp - 0x1c], eax
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x140058de6
mov esi, 0xc0000017
jmp 0x140058e6e
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x30]
mov eax, dword [rsp + 0x58]
mov edx, 4
mov rcx, rbx
mov dword [rbx], eax
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058e55
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov eax, dword [rsp + 0x5c]
mov dword [rcx], eax
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140058e55
mov ecx, dword [rbp - 0x1c]
mov rax, qword [rbp + 0x158]
mov qword [rcx + rbx - 8], rax
mov r8d, dword [rsp + 0x5c]
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_memcpy
mov r15d, dword [rbp - 0x1c]
mov r13, rbx
mov qword [rbp + 0x18], rbx
mov rbx, rdi
test rbx, rbx
je 0x140058e6e
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
or esi, 0x10000000
jl 0x14005a603
mov qword [rbp + 0x268], rdi
mov r14, rdi
mov qword [rbp + 0x1e8], rdi
mov qword [rbp + 0x278], rdi
mov qword [rbp + 0x1f8], rdi
mov qword [rbp + 0x120], rdi
mov qword [rbp + 0x1d8], rdi
test r13, r13
jne 0x140058eb6
mov esi, 0xc000000d
jmp 0x1400595c6
mov esi, r15d
mov qword [rbp - 0x28], rsi
test r15d, r15d
je 0x14005951b
lea rax, [rsi + 8]
mov rcx, rax
mov qword [rbp - 0x50], rax
call fcn.14000ab60
mov qword [rsp + 0x30], rax
mov r12, rax
test rax, rax
je 0x14005951b
mov dl, dil
mov rcx, rdi
test r15d, r15d
je 0x140058efe
xor dl, byte [rcx + r13]
inc rcx
cmp rcx, rsi
jb 0x140058ef2
or r11d, 0xffffffff
mov dword [rsp + 0x38], edi
mov r8, rsi
mov dword [rsp + 0x78], r11d
mov ebx, edi
mov r9, r13
mov dword [rbp - 0x78], ebx
mov r10, rax
mov r13d, edi
and r8d, 7
je 0x140058fe7
mov dword [rsp + 0x38], edi
mov r15d, edi
test r8d, r8d
jle 0x140058f67
mov r11d, 0x38
movzx eax, byte [r9]
cmp ebx, 4
jge 0x140058f4c
lea ecx, [r11 - 0x20]
shl eax, cl
or r15d, eax
jmp 0x140058f54
mov ecx, r11d
shl eax, cl
or r13d, eax
inc r9
inc ebx
sub r11d, 8
cmp ebx, r8d
jl 0x140058f38
mov dword [rsp + 0x38], r15d
mov ebx, r15d
mov r11d, r13d
xor ebx, 0x875330f4
xor r11d, 0x549791cd
mov dword [rbp - 0x78], ebx
mov eax, edi
mov dword [rsp + 0x78], r11d
test r8d, r8d
jle 0x140058faf
cmp eax, 4
jge 0x140058f96
rol ebx, 8
mov byte [r10], bl
jmp 0x140058f9d
rol r11d, 8
mov byte [r10], r11b
inc r10
inc eax
cmp eax, r8d
jl 0x140058f89
mov ebx, dword [rbp - 0x78]
mov r11d, dword [rsp + 0x78]
lea eax, [r8 - 4]
test eax, eax
jle 0x140058fce
mov ecx, 4
sub ecx, eax
shl ecx, 3
shr r11d, cl
shl r11d, cl
mov dword [rsp + 0x78], r11d
jmp 0x140058fe7
mov dword [rsp + 0x78], edi
mov r11d, edi
test eax, eax
jns 0x140058fe7
neg eax
shl eax, 3
mov ecx, eax
shr ebx, cl
shl ebx, cl
mov dword [rbp - 0x78], ebx
mov r15, rsi
shr r15, 3
test r15, r15
je 0x140059322
mov r14d, dword [rsp + 0x38]
lea r12, [r10 + 7]
lea rsi, [r9 + 2]
movzx eax, byte [rsi - 1]
movzx r10d, byte [rsi - 2]
movzx r9d, byte [rsi + 2]
shl r10d, 8
or r10d, eax
shl r9d, 8
movzx eax, byte [rsi]
lea rsi, [rsi + 8]
shl r10d, 8
or r10d, eax
movzx eax, byte [rsi - 7]
shl r10d, 8
or r10d, eax
movzx eax, byte [rsi - 5]
or r9d, eax
movzx eax, byte [rsi - 4]
shl r9d, 8
or r9d, eax
movzx eax, byte [rsi - 3]
shl r9d, 8
or r9d, eax
xor r11d, r9d
lea eax, [r11 + 0x36fdf9bd]
rol eax, 8
imul ecx, eax, 0x3bd6
mov eax, r11d
ror eax, 9
add ecx, eax
mov eax, 0x36fdf9bd
xor ecx, r10d
xor ebx, ecx
sub eax, ebx
rol eax, 7
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0xb
add ecx, eax
xor r11d, ecx
mov eax, r11d
mov r8d, r11d
xor eax, 0xdb6b
ror r8d, 0xa
imul ecx, eax, 0xf9bd
add r8d, ecx
xor ebx, r8d
mov r8d, 0xdb6b3bd6
lea eax, [rbx + 0x2494c42a]
ror eax, 1
imul ecx, eax, 0x36fd
mov eax, ebx
rol eax, 0xe
xor ecx, eax
mov eax, 0x36fdf9bd
xor r11d, ecx
mov ecx, r11d
xor ecx, r8d
sub eax, ecx
xor ebx, eax
mov eax, ebx
not eax
ror eax, 0xe
add eax, 0xdb6b
imul eax, eax, 0x3bd6
xor r11d, eax
mov eax, r11d
xor eax, r8d
ror eax, 0xf
imul ecx, eax, 0xf9bd
mov eax, r11d
rol eax, 6
xor ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x24948d2d]
xor r11d, eax
mov eax, r11d
xor eax, 0xf9bd
imul ecx, eax, 0x3bd6
mov eax, r11d
shr eax, 6
xor ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, 0x3bd6
rol eax, 3
imul ecx, eax, 0xdb6b
mov eax, ebx
rol eax, 0xc
sub ecx, eax
xor r11d, ecx
lea eax, [r11 + 0x2494c42a]
rol eax, 0xd
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 0xf
xor ecx, eax
mov eax, r8d
xor ebx, ecx
sub eax, ebx
rol eax, 3
imul ecx, eax, 0x36fd
mov eax, ebx
rol eax, 9
sub ecx, eax
xor r11d, ecx
lea eax, [r11 - 0xf9bd]
rol eax, 3
imul ecx, eax, 0x3bd6
mov eax, r11d
shr eax, 0xf
xor ecx, eax
xor ebx, ecx
lea eax, [rbx - 0xf9bd]
imul ecx, eax, 0xdb6b
mov eax, ebx
shr eax, 0xd
sub ecx, eax
mov eax, r8d
xor r11d, ecx
sub eax, r11d
ror eax, 9
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 0xb
xor ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x24948d2d]
xor r11d, eax
mov eax, r11d
mov r8d, r11d
xor eax, 0xdb6b
ror r8d, 7
imul ecx, eax, 0x3bd6
sub ecx, r8d
xor ebx, ecx
mov eax, ebx
xor eax, 0x36fd
rol eax, 4
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0x10
sub ecx, eax
mov eax, 0xdb6b3bd6
xor r11d, ecx
sub eax, r11d
ror eax, 0xa
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 4
add ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x2494c42a]
ror eax, 4
imul ecx, eax, 0x36fd
mov eax, ebx
ror eax, 9
xor ecx, eax
xor r11d, ecx
mov eax, r11d
xor eax, 0x36fdf9bd
rol eax, 8
imul ecx, eax, 0x3bd6
mov eax, r11d
rol eax, 2
sub ecx, eax
mov eax, 0x36fdf9bd
xor ebx, ecx
sub eax, ebx
ror eax, 0xb
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0xc
sub ecx, eax
xor r11d, ecx
mov eax, r11d
xor eax, 0xdb6b
imul ecx, eax, 0xf9bd
mov eax, r11d
shr eax, 8
xor ecx, eax
xor ebx, ecx
xor r11d, ebx
xor ebx, r14d
mov dword [rbp - 0x78], ebx
xor r11d, 0xed96c26b
xor r11d, r13d
mov r14d, r10d
mov dword [rsp + 0x78], r11d
mov r13d, r9d
mov byte [r12 - 4], bl
mov al, byte [rsp + 0x78]
ror dword [rbp - 0x78], 8
mov byte [r12], al
lea r12, [r12 + 8]
ror dword [rsp + 0x78], 8
mov al, byte [rbp - 0x78]
mov byte [r12 - 0xd], al
mov al, byte [rsp + 0x78]
ror dword [rbp - 0x78], 8
mov byte [r12 - 9], al
ror dword [rsp + 0x78], 8
mov al, byte [rbp - 0x78]
mov byte [r12 - 0xe], al
ror dword [rbp - 0x78], 8
mov al, byte [rsp + 0x78]
mov byte [r12 - 0xa], al
ror dword [rsp + 0x78], 8
mov al, byte [rbp - 0x78]
mov byte [r12 - 0xf], al
mov al, byte [rsp + 0x78]
mov byte [r12 - 0xb], al
mov ebx, dword [rbp - 0x78]
mov r11d, dword [rsp + 0x78]
ror ebx, 8
ror r11d, 8
mov dword [rbp - 0x78], ebx
mov dword [rsp + 0x78], r11d
sub r15, 1
jne 0x140059004
mov rsi, qword [rbp - 0x28]
mov r14, rdi
mov r12, qword [rsp + 0x30]
movzx eax, dl
mov qword [r12 + rsi], rax
mov rsi, qword [rbp - 0x50]
mov qword [rbp + 0x1d8], rsi
mov qword [rbp + 0x120], r12
lea rax, [0x1400a94f0]
mov r13d, 8
mov qword [rbp + 0x268], rax
mov qword [rbp + 0x1e8], r13
lea r15, [0x1400a9450]
mov qword [rbp + 0x1f8], 0xa0
mov qword [rbp + 0x278], r15
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
lea r8d, [r13 + 0x28]
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x140059397
mov esi, 0xc0000017
jmp 0x14005950b
mov dword [rax], esi
mov esi, esi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, esi
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x1400593bf
mov esi, 0xc0000017
jmp 0x14005948f
mov qword [rbx + 8], rax
mov r8, rsi
mov rdx, r12
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov esi, 0xa0
mov dword [rbx + 0x10], esi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, esi
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1400593b5
mov qword [rbx + 0x18], rax
movups xmm0, xmmword [r15]
lea edx, [rsi - 0x20]
movups xmmword [rax], xmm0
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [r15 + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [r15 + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [r15 + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [r15 + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [r15 + 0x60]
movups xmmword [rax + 0x60], xmm0
movups xmm1, xmmword [r15 + 0x70]
movups xmmword [rax + rdx - 0x10], xmm1
movups xmm0, xmmword [r15 + rdx]
movups xmmword [rax + rdx], xmm0
movups xmm1, xmmword [r15 + rdx + 0x10]
movups xmmword [rax + rdx + 0x10], xmm1
mov dword [rbx + 0x20], r13d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r13
mov edx, r13d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1400593b5
mov qword [rbx + 0x28], rax
movsd xmm0, qword [0x1400a94f0]
mov r14, rbx
movsd qword [rax], xmm0
mov esi, edi
mov rbx, rdi
test rbx, rbx
je 0x14005950b
mov r15, qword [rbx + 8]
test r15, r15
je 0x1400594b5
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], rdi
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x1400594d6
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x18], rdi
mov r15, qword [rbx + 0x28]
test r15, r15
je 0x1400594f7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
js 0x140059520
mov qword [rbp + 0xe8], r14
mov r14, rdi
jmp 0x140059520
mov esi, 0xc0000001
mov rbx, qword [rbp + 0x120]
test rbx, rbx
je 0x140059547
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0x120], rdi
test r14, r14
je 0x1400595c3
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x14005956d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 8], rdi
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x14005958e
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x18], rdi
mov rbx, qword [r14 + 0x28]
test rbx, rbx
je 0x1400595af
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r12d, edi
or esi, 0x10000000
jl 0x14005a603
mov r14, qword [rbp + 0xe8]
lea r8, [rsp + 0x38]
mov r15d, 4
mov ecx, r15d
mov dword [rsp + 0x38], r15d
mov edx, dword [r14]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059663
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059663
mov edx, dword [r14 + 0x10]
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059663
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059663
mov edx, dword [r14 + 0x20]
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
mov eax, dword [rbp + 0x48]
test esi, esi
cmovns eax, dword [rsp + 0x38]
mov dword [rbp + 0x48], eax
jmp 0x140059666
mov eax, dword [rbp + 0x48]
test esi, esi
js 0x1400597a0
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x140059699
mov esi, 0xc0000017
jmp 0x1400597a0
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x30]
mov eax, dword [r14]
mov rdx, r15
mov rcx, rbx
mov dword [rbx], eax
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov r8d, dword [r14]
mov rdx, qword [r14 + 8]
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_memcpy
mov edx, dword [r14]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov eax, dword [r14 + 0x10]
mov rdx, r15
mov dword [rcx], eax
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov r8d, dword [r14 + 0x10]
mov rdx, qword [r14 + 0x18]
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0x10]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov eax, dword [r14 + 0x20]
mov rdx, r15
mov dword [rcx], eax
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov r8d, dword [r14 + 0x20]
mov rdx, qword [r14 + 0x28]
mov rcx, qword [rsp + 0x30]
call sub.msvcrt.dll_memcpy
mov edx, dword [r14 + 0x20]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059787
mov r12d, dword [rbp + 0x48]
mov qword [rbp + 0x40], rbx
mov rbx, rdi
test rbx, rbx
je 0x1400597a0
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
or esi, 0x10000000
jl 0x14005a603
mov ebx, edi
mov qword [rbp + 0x288], rdi
mov dword [rbp + 0x148], ebx
mov r11d, edi
mov dword [rbp + 0xf0], edi
mov qword [rbp + 0x208], rdi
mov dword [rbp + 0x50], 8
mov edx, dword [rsp + 0x50]
lea r8, [rbp + 0x50]
mov ecx, 8
call fcn.14000ad5c
mov esi, eax
or esi, 0x10000000
jl 0x140059a00
mov eax, dword [rbp + 0x50]
add rax, 7
and eax, 0xfffffff8
cmp eax, dword [rbp + 0x50]
jae 0x14005980f
mov r9d, dword [rbp + 0xa8]
mov esi, 0xc0000095
jmp 0x14005983f
mov dword [rbp + 0xbc], eax
mov edx, ecx
lea r8, [rbp + 0xbc]
mov ecx, eax
call fcn.14000ad5c
mov r9d, dword [rbp + 0xa8]
test eax, eax
mov esi, eax
cmovns r9d, dword [rbp + 0xbc]
mov dword [rbp + 0xa8], r9d
test esi, esi
js 0x14005a603
cmp qword [rsp + 0x60], rdi
jne 0x140059858
mov esi, 0xc000000d
jmp 0x140059a00
cmp dword [rsp + 0x58], 1
jbe 0x14005984e
mov rcx, qword [rsp + 0x60]
mov r10d, edi
mov qword [rsp + 0x30], rcx
mov r14d, dword [rcx]
lea r8, [rsp + 0x30]
mov rdx, r15
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x1400598db
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, r14d
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x1400598db
mov rcx, qword [rsp + 0x30]
inc r10d
cmp r10d, 1
jb 0x14005986c
mov r10d, dword [rcx]
lea r8, [rsp + 0x30]
mov rdx, r15
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x1400598db
mov rax, qword [rsp + 0x30]
test r10d, r10d
mov r11d, r10d
mov dword [rbp + 0xf0], r10d
cmove rax, rdi
mov qword [rbp + 0x288], rax
test esi, esi
js 0x14005a603
cmp dword [rsp + 0x58], 2
jbe 0x14005984e
mov rcx, qword [rsp + 0x60]
mov r8d, edi
lea rdx, [rcx + 4]
cmp rdx, rcx
jb 0x1400599fb
mov ecx, dword [rcx]
add rcx, rdx
cmp rcx, rdx
jb 0x1400599fb
inc r8d
mov qword [rsp + 0x30], rcx
cmp r8d, 2
jb 0x1400598f6
mov r10d, dword [rcx]
lea r8, [rsp + 0x30]
mov rdx, r15
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059951
mov rax, qword [rsp + 0x30]
test r10d, r10d
mov ebx, r10d
cmove rax, rdi
mov dword [rbp + 0x148], ebx
mov qword [rbp + 0x208], rax
test esi, esi
js 0x14005a603
lea r8, [rsp + 0x38]
mov dword [rsp + 0x38], r15d
mov edx, r9d
mov ecx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x1400599da
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x1400599da
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x1400599da
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x1400599da
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, ebx
call fcn.14000ad5c
mov esi, eax
mov eax, dword [rbp + 0x7c]
test esi, esi
cmovns eax, dword [rsp + 0x38]
mov dword [rbp + 0x7c], eax
jmp 0x1400599dd
mov eax, dword [rbp + 0x7c]
test esi, esi
js 0x14005a603
cmp eax, 0x400000
jbe 0x1400599f6
mov esi, 0x8000ffff
jmp 0x14005a603
mov dword [rbp - 0x38], eax
jmp 0x140059a00
mov esi, 0xc0000095
test esi, esi
js 0x14005a603
mov ebx, dword [rbp - 0x38]
mov esi, edi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x140059a33
mov esi, 0xc0000017
mov r15, rdi
jmp 0x140059a3a
mov r15, rax
mov qword [rbp - 0x58], rax
or esi, 0x10000000
jl 0x14005a603
mov rsi, qword [rbp + 0x40]
test rsi, rsi
jne 0x140059a59
mov esi, 0x80070057
jmp 0x14005a603
test r15, r15
je 0x140059a4f
lea r8, [rbp + 0x280]
mov ecx, 1
lea rdx, [0x1400735c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
test eax, eax
je 0x140059a97
mov rcx, qword [rbp + 0x280]
lea rdx, [0x1400735e0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x140059abb
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov esi, eax
test eax, eax
jle 0x140059aac
movzx esi, ax
or esi, 0x80070000
test esi, esi
js 0x140059ab5
mov esi, 0x80004005
mov r9d, dword [rbp - 0x38]
jmp 0x140059b14
mov eax, dword [rbp - 0x38]
mov rcx, rbx
mov dword [rbp + 0x304], eax
mov qword [rbp + 0x2f0], rsi
mov dword [rbp + 0x300], r12d
mov qword [rbp + 0x2f8], r15
mov dword [rbp + 0x308], edi
call qword [0x1400719c8]
xor r9d, r9d
lea rdx, [rbp + 0x2f0]
lea r8d, [r9 + 0x20]
lea ecx, [r8 + 0x66]
call rbx
mov r9d, dword [rbp - 0x38]
mov esi, eax
or esi, 0x10000000
cmovns r9d, dword [rbp + 0x304]
mov dword [rbp - 0x38], r9d
cmp esi, 0xd0000023
jne 0x140059b2a
mov r15d, 0x8007007a
mov esi, r15d
jmp 0x14005a609
test esi, esi
js 0x14005a603
mov dword [rsp + 0x38], edi
mov r14, rdi
mov qword [rsp + 0x30], r15
cmp r9d, 4
jae 0x140059b4e
mov esi, 0xc000003e
jmp 0x140059f05
mov r13d, dword [r15]
lea r8, [rsp + 0x30]
mov edx, 4
mov rcx, r15
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059f05
lea r8, [rsp + 0x38]
xor ecx, ecx
mov r15d, edx
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r13d
jb 0x140059b44
mov rax, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov rcx, rax
mov qword [rsp + 0x50], rax
mov edx, r13d
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059f05
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r15d
jb 0x140059b44
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, r15d
mov r12d, dword [rcx]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059f05
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r12d
jb 0x140059b44
mov rax, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov rcx, rax
mov qword [rbp - 0x28], rax
mov edx, r12d
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059f05
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r15d
jb 0x140059b44
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, 4
mov r15d, dword [rcx]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x140059f05
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
mov ecx, dword [rsp + 0x38]
mov eax, r9d
sub eax, ecx
cmp eax, r15d
jb 0x140059b44
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x140059f05
cmp r9d, dword [rsp + 0x38]
jne 0x140059b44
lea ecx, [r15 + r12]
mov eax, r9d
add ecx, r13d
add rcx, 0xc
cmp rcx, rax
jne 0x140059b44
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x28]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x140059d1e
mov esi, 0xc0000017
jmp 0x140059e7e
mov esi, edi
cmp qword [rsp + 0x50], rdi
je 0x140059d66
mov dword [rax], r13d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x140059d50
mov esi, 0xc0000017
jmp 0x140059e02
mov qword [rbx + 8], rax
mov rdx, qword [rsp + 0x50]
mov r8, r13
mov rcx, rax
call sub.msvcrt.dll_memcpy
jmp 0x140059d6c
mov dword [rax], edi
mov qword [rax + 8], rdi
mov r13, qword [rbp - 0x28]
test r13, r13
je 0x140059dab
mov dword [rbx + 0x10], r12d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
mov r8, r12
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x140059d46
mov qword [rbx + 0x18], rax
mov r8, r12
mov rdx, r13
mov rcx, rax
mov esi, edi
call sub.msvcrt.dll_memcpy
jmp 0x140059db2
mov dword [rbx + 0x10], edi
mov qword [rbx + 0x18], rdi
cmp qword [rsp + 0x30], rdi
je 0x140059df5
mov dword [rbx + 0x20], r15d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x140059d46
mov qword [rbx + 0x28], rax
mov rdx, qword [rsp + 0x30]
mov r8, r15
mov rcx, rax
mov esi, edi
call sub.msvcrt.dll_memcpy
jmp 0x140059dfc
mov dword [rbx + 0x20], edi
mov qword [rbx + 0x28], rdi
mov r14, rbx
mov rbx, rdi
test rbx, rbx
je 0x140059e7e
mov r15, qword [rbx + 8]
test r15, r15
je 0x140059e28
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], rdi
mov r15, qword [rbx + 0x18]
test r15, r15
je 0x140059e49
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x18], rdi
mov r15, qword [rbx + 0x28]
test r15, r15
je 0x140059e6a
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
js 0x140059e89
mov qword [rbp + 0x28], r14
mov r14, rdi
test r14, r14
je 0x140059f05
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x140059eaf
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 8], rdi
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x140059ed0
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x18], rdi
mov rbx, qword [r14 + 0x28]
test rbx, rbx
je 0x140059ef1
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
or esi, 0x10000000
jl 0x14005a603
mov rax, qword [rbp + 0x28]
mov rbx, rdi
mov qword [rbp + 0x60], rbx
mov esi, edi
mov qword [rbp + 0x188], rdi
test rax, rax
jne 0x140059f34
mov esi, 0xc000000d
jmp 0x14005a41b
mov r14, qword [rax + 8]
mov qword [rsp + 0x50], r14
test r14, r14
je 0x140059f2a
cmp dword [rax], edi
je 0x140059f2a
mov r15d, dword [rax]
test r15, r15
je 0x14005a3f9
add r15, 0xfffffffffffffff8
mov rcx, r15
mov qword [rbp - 0x50], r15
call fcn.14000ab60
mov qword [rbp - 0x28], rax
mov r12, rax
test rax, rax
je 0x14005a3f5
mov r8, r15
mov dword [rbp - 0x80], edi
mov r9, r14
mov dl, dil
mov r10, rax
mov r14d, edi
and r8d, 7
je 0x14005a055
or dword [rsp + 0x6c], 0xffffffff
mov r13d, edi
mov dword [rsp + 0x38], edi
mov dword [rbp - 0x60], edi
test r8d, r8d
jle 0x140059fdb
mov r11d, 0x38
movzx eax, byte [r9]
cmp ebx, 4
jge 0x140059fbc
lea ecx, [r11 - 0x20]
shl eax, cl
or r14d, eax
jmp 0x140059fc4
mov ecx, r11d
shl eax, cl
or r13d, eax
inc r9
inc ebx
sub r11d, 8
cmp ebx, r8d
jl 0x140059fa8
mov dword [rbp - 0x60], r14d
mov dword [rsp + 0x38], r13d
xor r14d, 0xe5d64a7e
mov ebx, r13d
xor ebx, 0x9c54a8c9
mov dword [rbp - 0x80], r14d
mov dword [rsp + 0x6c], ebx
mov eax, edi
test r8d, r8d
jle 0x14005a020
cmp eax, 4
jge 0x14005a008
rol r14d, 8
mov byte [r10], r14b
jmp 0x14005a00e
rol ebx, 8
mov byte [r10], bl
inc r10
inc eax
cmp eax, r8d
jl 0x140059ffa
mov r14d, dword [rbp - 0x80]
mov ebx, dword [rsp + 0x6c]
lea eax, [r8 - 4]
test eax, eax
jle 0x14005a038
mov ecx, 4
sub ecx, eax
shl ecx, 3
shr ebx, cl
shl ebx, cl
jmp 0x14005a05d
mov ebx, edi
mov dword [rsp + 0x6c], ebx
test eax, eax
jns 0x14005a061
neg eax
shl eax, 3
mov ecx, eax
shr r14d, cl
shl r14d, cl
mov dword [rbp - 0x80], r14d
jmp 0x14005a061
or dword [rsp + 0x38], 0xffffffff
mov dword [rbp - 0x60], edi
mov dword [rsp + 0x6c], ebx
mov r13, r15
shr r13, 3
test r13, r13
je 0x14005a387
mov edx, dword [rsp + 0x38]
lea r15, [r10 + 7]
mov r12d, dword [rbp - 0x60]
lea rdi, [r9 + 2]
movzx eax, byte [rdi - 1]
mov r9d, 0x532d7f78
movzx r11d, byte [rdi - 2]
movzx r10d, byte [rdi + 2]
shl r11d, 8
or r11d, eax
shl r10d, 8
movzx eax, byte [rdi]
lea rdi, [rdi + 8]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 7]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 5]
or r10d, eax
xor r14d, r11d
movzx eax, byte [rdi - 4]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 3]
shl r10d, 8
or r10d, eax
xor ebx, r10d
xor ebx, r14d
xor ebx, 0x5384b529
lea eax, [rbx - 0x532d7f78]
rol eax, 5
imul ecx, eax, 0xca51
mov eax, ebx
rol eax, 0xa
add ecx, eax
xor r14d, ecx
lea eax, [r14 + 0xa9ca51]
ror eax, 9
imul ecx, eax, 0x532d
mov eax, r14d
rol eax, 2
sub ecx, eax
xor ebx, ecx
lea eax, [rbx - 0xca51]
imul ecx, eax, 0x7f78
mov eax, ebx
shr eax, 0xd
sub ecx, eax
xor r14d, ecx
mov eax, r14d
xor eax, 0x532d
rol eax, 6
imul ecx, eax, 0xa9
mov eax, r14d
rol eax, 2
sub ecx, eax
mov eax, 0xa9ca51
xor ebx, ecx
mov ecx, ebx
xor ecx, r9d
sub eax, ecx
xor r14d, eax
mov eax, r14d
mov r8d, r14d
xor eax, 0xca51
ror r8d, 6
imul ecx, eax, 0x532d
xor r8d, ecx
xor ebx, r8d
lea eax, [rbx + 0xa9ca51]
ror eax, 0xf
imul ecx, eax, 0x7f78
mov eax, ebx
rol eax, 2
add ecx, eax
xor r14d, ecx
lea eax, [r14 - 0x532d7f78]
ror eax, 0xe
imul ecx, eax, 0xa9
mov eax, r14d
rol eax, 8
sub ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, r9d
mov r8d, 0x532d
ror eax, 0xc
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 0xa
xor ecx, eax
xor r14d, ecx
mov eax, r14d
xor eax, 0xa9
imul ecx, eax, 0x532d
mov eax, r14d
shr eax, 0xa
xor ecx, eax
xor ebx, ecx
mov eax, ebx
mov r9d, ebx
not eax
ror eax, 5
add eax, 0x7f78
imul eax, eax, 0xa9
xor r14d, eax
xor r9d, r14d
xor r9d, 0x5384b529
mov eax, r9d
ror eax, 5
sub eax, r8d
imul eax, eax, 0xa9
xor ebx, eax
lea eax, [rbx - 0x532d]
rol eax, 3
imul ecx, eax, 0x7f78
mov eax, ebx
shr eax, 7
xor ecx, eax
xor r9d, ecx
lea eax, [r9 - 0x532d7f78]
rol eax, 0xe
imul ecx, eax, 0xa9
mov eax, r9d
ror eax, 0xc
xor ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, 0x532d7f78
rol eax, 9
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 2
add ecx, eax
xor r9d, ecx
lea eax, [r9 + 0xa9ca51]
rol eax, 8
imul ecx, eax, 0x532d
mov eax, r9d
ror eax, 6
sub ecx, eax
mov eax, 0xa9ca51
xor ebx, ecx
sub eax, ebx
ror eax, 0xe
imul ecx, eax, 0x7f78
mov eax, ebx
ror eax, 0xc
sub ecx, eax
xor r9d, ecx
mov eax, r9d
xor eax, r8d
rol eax, 5
imul ecx, eax, 0xa9
mov eax, r9d
rol eax, 0xf
xor ecx, eax
xor ebx, ecx
lea eax, [rbx - 0x532d7f78]
rol eax, 0xa
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 4
xor ecx, eax
xor r9d, ecx
mov eax, r9d
not eax
ror eax, 2
add eax, r8d
imul eax, eax, 0xca51
xor ebx, eax
mov eax, ebx
mov r8d, ebx
xor eax, 0xca51
ror r8d, 6
imul ecx, eax, 0x7f78
xor ebx, edx
mov dword [rsp + 0x6c], ebx
mov edx, r10d
add r8d, ecx
xor r8d, r12d
mov r12d, r11d
xor r9d, r8d
mov dword [rbp - 0x80], r9d
mov byte [r15 - 4], r9b
mov al, byte [rsp + 0x6c]
ror dword [rbp - 0x80], 8
mov byte [r15], al
lea r15, [r15 + 8]
ror dword [rsp + 0x6c], 8
mov al, byte [rbp - 0x80]
mov byte [r15 - 0xd], al
mov al, byte [rsp + 0x6c]
ror dword [rbp - 0x80], 8
mov byte [r15 - 9], al
ror dword [rsp + 0x6c], 8
mov al, byte [rbp - 0x80]
mov byte [r15 - 0xe], al
ror dword [rbp - 0x80], 8
mov al, byte [rsp + 0x6c]
mov byte [r15 - 0xa], al
ror dword [rsp + 0x6c], 8
mov al, byte [rbp - 0x80]
mov byte [r15 - 0xf], al
mov al, byte [rsp + 0x6c]
mov byte [r15 - 0xb], al
mov r14d, dword [rbp - 0x80]
mov ebx, dword [rsp + 0x6c]
ror r14d, 8
ror ebx, 8
mov dword [rbp - 0x80], r14d
mov dword [rsp + 0x6c], ebx
sub r13, 1
jne 0x14005a081
mov r15, qword [rbp - 0x50]
mov dl, sil
mov r12, qword [rbp - 0x28]
xor edi, edi
mov rax, rdi
test r15, r15
je 0x14005a39b
xor dl, byte [rax + r12]
inc rax
cmp rax, r15
jb 0x14005a38f
mov rcx, qword [rsp + 0x50]
movzx eax, dl
cmp rax, qword [r15 + rcx]
je 0x14005a3b5
mov rbx, qword [rbp + 0x60]
mov r14d, 0xc004d501
jmp 0x14005a3c9
mov rbx, r12
mov qword [rbp + 0x188], r15
mov qword [rbp + 0x60], rbx
mov r12, rdi
mov r14d, esi
test r12, r12
je 0x14005a3da
mov rcx, r12
call fcn.140025e74
mov rbx, qword [rbp + 0x60]
test r14d, r14d
js 0x14005a3f9
mov eax, dword [rbp + 0x188]
mov qword [rbp - 0x40], rbx
mov rbx, rdi
mov qword [rbp + 0x60], rbx
mov dword [rbp - 0x18], eax
jmp 0x14005a3fe
mov rbx, qword [rbp + 0x60]
mov esi, 0xc0000001
test rbx, rbx
je 0x14005a41b
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0x60], rdi
or esi, 0x10000000
jl 0x14005a603
mov r9, qword [rbp - 0x40]
mov r15d, 4
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], r9
cmp dword [rbp - 0x18], r15d
jb 0x14005a5fa
mov r10d, dword [r9]
lea r8, [rsp + 0x30]
mov edx, r15d
mov dword [rsp + 0x50], r10d
mov rcx, r9
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a5ff
lea r8, [rsp + 0x38]
xor ecx, ecx
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x14005a5ff
mov eax, dword [rbp - 0x18]
sub eax, dword [rsp + 0x38]
cmp eax, r15d
jb 0x14005a5fa
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov r11d, edx
mov r15d, dword [rcx]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a5ff
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x14005a5ff
mov eax, dword [rbp - 0x18]
mov ecx, dword [rsp + 0x38]
sub eax, ecx
cmp eax, r15d
jb 0x14005a5fa
lea r8, [rsp + 0x38]
mov edx, r15d
call fcn.14000ad5c
mov esi, eax
test eax, eax
js 0x14005a5ff
mov edx, dword [rbp - 0x18]
mov rbx, qword [rsp + 0x30]
lea rcx, [rdx + r9]
lea rax, [r15 + rbx]
cmp rcx, rax
jb 0x14005a5fa
sub rdx, r15
sub rdx, rbx
add rdx, r9
cmp rdx, 8
jae 0x14005a5fa
mov r12, rdi
mov esi, edi
mov r13d, edi
test rbx, rbx
je 0x14005a58a
lea r8, [rbp - 0x50]
mov edx, r15d
mov rcx, rbx
mov r9, rbx
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a5f0
mov rcx, qword [rbp - 0x50]
cmp rbx, rcx
jae 0x14005a585
lea rax, [r9 + 4]
cmp rax, r9
jb 0x14005a5c3
cmp rax, rcx
ja 0x14005a5bc
mov eax, dword [r9]
add eax, r11d
cmp eax, r11d
jb 0x14005a5b5
mov dword [rbp + 0x298], eax
mov edx, eax
add rdx, r9
cmp rdx, r9
jb 0x14005a5c3
mov r9, rdx
mov esi, edi
cmp rdx, rcx
ja 0x14005a5bc
inc r13d
cmp rdx, rcx
jb 0x14005a54a
cmp r9, rcx
jne 0x14005a5bc
test r15d, r15d
je 0x14005a5cc
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r12, rax
test rax, rax
jne 0x14005a5ca
mov esi, 0xc0000017
jmp 0x14005a5eb
mov esi, 0xc0000095
jmp 0x14005a5f0
mov esi, 0xc000000d
jmp 0x14005a5ff
mov esi, 0xc0000095
jmp 0x14005a5ff
mov esi, edi
test rbx, rbx
je 0x14005a5df
mov r8, r15
mov rdx, rbx
mov rcx, r12
call sub.msvcrt.dll_memcpy
mov qword [rbp - 8], r12
mov dword [rbp - 0xc], r15d
mov dword [rbp - 0x10], r13d
mov r10d, dword [rsp + 0x50]
test esi, esi
js 0x14005a5ff
cmp r10d, dword [rbp - 0x10]
je 0x14005a5ff
mov esi, 0xc000003e
bts esi, 0x1c
mov r15d, 0x8007007a
mov rbx, qword [rbp + 0x18]
test rbx, rbx
je 0x14005a626
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r14, qword [rbp + 0xe8]
test r14, r14
je 0x14005a6b0
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x14005a653
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 8], rdi
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x14005a674
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x18], rdi
mov rbx, qword [r14 + 0x28]
test rbx, rbx
je 0x14005a695
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0xe8], rdi
mov rbx, qword [rbp + 0x40]
test rbx, rbx
je 0x14005a6cd
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rbp - 0x58]
test rbx, rbx
je 0x14005a6ea
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r14, qword [rbp + 0x28]
test r14, r14
je 0x14005a76a
mov rbx, qword [r14 + 8]
test rbx, rbx
je 0x14005a714
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 8], rdi
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x14005a735
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x18], rdi
mov rbx, qword [r14 + 0x28]
test rbx, rbx
je 0x14005a756
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r14 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rbp - 0x40]
test rbx, rbx
je 0x14005a787
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test esi, esi
js 0x14005a796
cmp dword [rbp - 0x10], 1
jae 0x14005a7a5
mov esi, 0xc004d501
mov r15, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x140058572
mov r13d, 4
cmp qword [rbp - 8], rdi
jne 0x14005a7b8
mov esi, 0xc000000d
jmp 0x14005a81b
cmp dword [rbp - 0x10], edi
jbe 0x14005a7b1
mov rbx, qword [rbp - 8]
lea r8, [rbp - 0x58]
mov rdx, r13
mov qword [rbp - 0x58], rbx
mov rcx, rbx
mov r9d, dword [rbx]
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a7f8
mov rax, qword [rbp - 0x58]
test r9d, r9d
mov dword [rbp + 0x12c], r9d
cmove rax, rdi
mov qword [rbp + 0x218], rax
jmp 0x14005a806
mov r9d, dword [rbp + 0x12c]
mov rax, qword [rbp + 0x218]
test esi, esi
js 0x14005a796
cmp r9d, r13d
je 0x14005a816
mov esi, 0xc0000023
jmp 0x14005a796
mov eax, dword [rax]
mov dword [rbp], eax
test esi, esi
js 0x14005a796
mov esi, dword [rbp]
cmp esi, 0xd0000023
cmove esi, r15d
mov dword [rbp], esi
cmp esi, r15d
je 0x14005a840
test esi, esi
js 0x14005a796
cmp dword [rbp - 0x10], 6
jne 0x14005a791
cmp qword [rbp - 8], rdi
jne 0x14005a85a
mov esi, 0xc000000d
jmp 0x14005a8fe
mov rcx, qword [rbp - 8]
mov r9d, edi
mov qword [rsp + 0x30], rcx
mov r10d, dword [rcx]
lea r8, [rsp + 0x30]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a8d4
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, r10d
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a8d4
mov rcx, qword [rsp + 0x30]
inc r9d
cmp r9d, 1
jb 0x14005a866
mov r9d, dword [rcx]
lea r8, [rsp + 0x30]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a8d4
mov rax, qword [rsp + 0x30]
test r9d, r9d
mov dword [rbp + 0x11c], r9d
cmove rax, rdi
mov qword [rbp + 0x2b0], rax
jmp 0x14005a8e2
mov r9d, dword [rbp + 0x11c]
mov rax, qword [rbp + 0x2b0]
test esi, esi
js 0x14005a796
cmp r9d, 8
jne 0x14005a80f
mov rax, qword [rax]
mov qword [rbp + 0x248], rax
test esi, esi
js 0x14005a796
cmp qword [rbp - 8], rdi
jne 0x14005a916
mov esi, 0xc000000d
jmp 0x14005a99b
mov rcx, qword [rbp - 8]
mov r8d, edi
lea rdx, [rcx + 4]
cmp rdx, rcx
jb 0x14005a996
mov ecx, dword [rcx]
add rcx, rdx
cmp rcx, rdx
jb 0x14005a996
inc r8d
mov qword [rbp - 0x58], rcx
cmp r8d, 2
jb 0x14005a91d
mov r9d, dword [rcx]
lea r8, [rbp - 0x58]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005a96d
mov rax, qword [rbp - 0x58]
test r9d, r9d
mov dword [rbp + 0xfc], r9d
cmove rax, rdi
mov qword [rbp + 0x228], rax
jmp 0x14005a97b
mov r9d, dword [rbp + 0xfc]
mov rax, qword [rbp + 0x228]
test esi, esi
js 0x14005a796
cmp r9d, r13d
jne 0x14005a80f
mov eax, dword [rax]
mov dword [rbp + 0x144], eax
jmp 0x14005a99b
mov esi, 0xc0000095
test esi, esi
js 0x14005a796
cmp qword [rbp - 8], rdi
jne 0x14005a9b3
mov esi, 0xc000000d
jmp 0x14005a796
mov rcx, qword [rbp - 8]
mov r8d, edi
lea rdx, [rcx + 4]
cmp rdx, rcx
jb 0x14005aba6
mov ecx, dword [rcx]
add rcx, rdx
cmp rcx, rdx
jb 0x14005aba6
inc r8d
mov qword [rbp - 0x58], rcx
cmp r8d, 3
jb 0x14005a9ba
mov r10d, dword [rcx]
lea r8, [rbp - 0x58]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005aa12
mov r11, qword [rbp - 0x58]
test r10d, r10d
mov dword [rbp + 0x14c], r10d
cmove r11, rdi
mov qword [rbp + 0x290], r11
jmp 0x14005aa20
mov r10d, dword [rbp + 0x14c]
mov r11, qword [rbp + 0x290]
test eax, eax
js 0x14005a796
mov rcx, qword [rbp - 8]
mov r8d, edi
lea rdx, [rcx + 4]
cmp rdx, rcx
jb 0x14005aaa7
mov ecx, dword [rcx]
add rcx, rdx
cmp rcx, rdx
jb 0x14005aaa7
inc r8d
mov qword [rbp - 0x58], rcx
cmp r8d, r13d
jb 0x14005aa2f
mov r9d, dword [rcx]
lea r8, [rbp - 0x58]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005aa7e
mov rax, qword [rbp - 0x58]
test r9d, r9d
mov dword [rbp + 0x108], r9d
cmove rax, rdi
mov qword [rbp + 0x238], rax
jmp 0x14005aa8c
mov r9d, dword [rbp + 0x108]
mov rax, qword [rbp + 0x238]
test esi, esi
js 0x14005a796
cmp r9d, r13d
jne 0x14005a80f
mov eax, dword [rax]
mov dword [rbp + 0x118], eax
jmp 0x14005aaac
mov esi, 0xc0000095
test esi, esi
js 0x14005a796
mov rcx, qword [rbp - 8]
mov r8d, edi
lea rdx, [rcx + 4]
cmp rdx, rcx
jb 0x14005ab34
mov ecx, dword [rcx]
add rcx, rdx
cmp rcx, rdx
jb 0x14005ab34
inc r8d
mov qword [rbp - 0x58], rcx
cmp r8d, 5
jb 0x14005aabb
mov r9d, dword [rcx]
lea r8, [rbp - 0x58]
mov rdx, r13
call fcn.14000ad74
mov esi, eax
test eax, eax
js 0x14005ab0b
mov rax, qword [rbp - 0x58]
test r9d, r9d
mov dword [rbp + 0x134], r9d
cmove rax, rdi
mov qword [rbp + 0x2c8], rax
jmp 0x14005ab19
mov r9d, dword [rbp + 0x134]
mov rax, qword [rbp + 0x2c8]
test esi, esi
js 0x14005a796
cmp r9d, r13d
jne 0x14005a80f
mov eax, dword [rax]
mov dword [rbp + 0x8c], eax
jmp 0x14005ab39
mov esi, 0xc0000095
test esi, esi
js 0x14005a796
mov rax, qword [rbp + 0x248]
cmp qword [rbp + 0x1b8], rax
jne 0x14005a791
mov eax, dword [rbp + 0x8c]
mov ecx, dword [rbp + 0x118]
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x144]
mov dword [rbp + 0xd8], eax
mov dword [rbp + 0xd0], ecx
cmp ecx, r13d
jbe 0x14005ab83
mov esi, r15d
jmp 0x14005a796
cmp r10d, r13d
ja 0x14005ab7b
mov rcx, qword [rbp + 0x168]
mov rdx, r11
mov r8d, r10d
call sub.msvcrt.dll_memcpy
cmp dword [rbp], edi
cmovne esi, dword [rbp]
jmp 0x14005a796
mov esi, 0xc0000095
jmp 0x14005a796
mov eax, 0xc000000d
test eax, eax
js 0x14005ae09
test r14d, r14d
je 0x14005acac
cmp qword [rbp - 0x68], rdi
jne 0x14005ac0a
lea r8, [rsp + 0x30]
mov edx, r14d
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0x13c], edx
mov ecx, dword [rbp - 0x6c]
lea r8, [rbp - 0x6c]
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
inc dword [rbp - 0x70]
jmp 0x14005acb9
mov r10d, edi
mov r9, qword [rbp - 0x68]
mov qword [rbp - 0x40], r9
cmp dword [rbp - 0x70], edi
jbe 0x14005ac5f
mov edx, dword [r9]
lea r8, [rsp + 0x30]
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov eax, dword [rsp + 0x30]
mov dword [rbp + 0x13c], eax
mov edx, eax
lea r8, [rbp - 0x40]
mov rcx, r9
call fcn.14000ad74
test eax, eax
js 0x14005ae09
mov r9, qword [rbp - 0x40]
inc r10d
cmp r10d, dword [rbp - 0x70]
jb 0x14005ac1a
lea r8, [rbp - 0x48]
mov rdx, r11
mov rcx, r9
call fcn.14000ad74
mov ebx, eax
test eax, eax
js 0x14005ae09
mov edx, dword [rbp - 0x6c]
lea rcx, [r14 + 4]
add rdx, qword [rbp - 0x68]
add rcx, r9
mov r8, r14
cmp rcx, rdx
ja 0x14005ae09
mov rcx, qword [rbp - 0x48]
mov rdx, r12
mov dword [r9], r14d
call sub.msvcrt.dll_memcpy
inc dword [rbp - 0x70]
mov r11d, 4
jmp 0x14005acb1
mov ebx, 0xc000000d
test ebx, ebx
js 0x14005ae09
test r15d, r15d
je 0x14005ad9e
cmp qword [rbp - 0x68], rdi
jne 0x14005ad06
lea r8, [rsp + 0x30]
mov edx, r15d
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0xf4], edx
mov ecx, dword [rbp - 0x6c]
lea r8, [rbp - 0x6c]
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
inc dword [rbp - 0x70]
jmp 0x14005adad
mov r10d, edi
mov r9, qword [rbp - 0x68]
mov qword [rbp - 0x40], r9
cmp dword [rbp - 0x70], edi
jbe 0x14005ad5b
mov edx, dword [r9]
lea r8, [rsp + 0x30]
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov eax, dword [rsp + 0x30]
mov dword [rbp + 0xf4], eax
mov edx, eax
lea r8, [rbp - 0x40]
mov rcx, r9
call fcn.14000ad74
test eax, eax
js 0x14005ae09
mov r9, qword [rbp - 0x40]
inc r10d
cmp r10d, dword [rbp - 0x70]
jb 0x14005ad16
lea r8, [rbp - 0x48]
mov rdx, r11
mov rcx, r9
call fcn.14000ad74
mov ebx, eax
test eax, eax
js 0x14005ae09
mov edx, dword [rbp - 0x6c]
add rdx, qword [rbp - 0x68]
mov r8d, r15d
lea rcx, [r8 + 4]
add rcx, r9
cmp rcx, rdx
ja 0x14005ae09
mov rcx, qword [rbp - 0x48]
mov rdx, r13
mov dword [r9], r15d
call sub.msvcrt.dll_memcpy
inc dword [rbp - 0x70]
jmp 0x14005ada3
mov ebx, 0xc000000d
test ebx, ebx
js 0x14005ae09
mov r11d, 4
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x1b0], rax
lea rax, [rbp + 0x1b0]
test rax, rax
je 0x14005aea0
cmp qword [rbp - 0x68], rdi
jne 0x14005ae14
lea r8, [rsp + 0x30]
mov edx, 8
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x30]
mov dword [rbp + 0xf8], edx
mov ecx, dword [rbp - 0x6c]
lea r8, [rbp - 0x6c]
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
inc dword [rbp - 0x70]
jmp 0x14005aead
mov r15, r12
mov r14, r13
jmp 0x14005cb7e
mov r10d, edi
mov r9, qword [rbp - 0x68]
mov qword [rbp - 0x40], r9
cmp dword [rbp - 0x70], edi
jbe 0x14005ae61
mov edx, dword [r9]
lea r8, [rsp + 0x30]
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov eax, dword [rsp + 0x30]
mov dword [rbp + 0xf8], eax
mov edx, eax
lea r8, [rbp - 0x40]
mov rcx, r9
call fcn.14000ad74
test eax, eax
js 0x14005ae09
mov r9, qword [rbp - 0x40]
inc r10d
cmp r10d, dword [rbp - 0x70]
jb 0x14005ae24
lea r8, [rbp - 0x48]
mov rdx, r11
mov rcx, r9
call fcn.14000ad74
test eax, eax
js 0x14005ae09
mov edx, dword [rbp - 0x6c]
lea rcx, [r9 + 0xc]
add rdx, qword [rbp - 0x68]
cmp rcx, rdx
ja 0x14005ae09
mov rcx, qword [rbp - 0x48]
mov dword [r9], 8
movsd xmm0, qword [rbp + 0x1b0]
movsd qword [rcx], xmm0
inc dword [rbp - 0x70]
jmp 0x14005aea5
mov eax, 0xc000000d
test eax, eax
js 0x14005ae09
lea r8, [rsp + 0x30]
mov edx, r11d
mov ecx, r11d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov r9d, dword [rsp + 0x30]
mov dword [rbp + 0x128], r9d
lea r8, [rsp + 0x50]
mov dword [rsp + 0x30], r9d
mov edx, 8
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov edx, dword [rsp + 0x50]
mov dword [rbp + 0x128], edx
lea r8, [rsp + 0x30]
mov ecx, r9d
call fcn.14000ad5c
test eax, eax
js 0x14005ae09
mov rbx, rdi
mov qword [rbp + 0xe0], rdi
mov qword [rbp + 8], rbx
mov r12d, edi
mov qword [rbp - 0x40], rdi
mov r13d, edi
mov dword [rsp + 0x50], edi
mov qword [rbp - 0x28], rdi
mov dword [rbp - 0x34], edi
mov qword [rbp + 0x28], rdi
mov qword [rbp + 0x40], rdi
mov dword [rbp - 0x14], edi
rdtsc
shl rdx, 0x20
or rax, rdx
mov qword [rbp + 0x180], rax
mov dword [rbp - 0x20], 8
mov edx, dword [rbp - 0x6c]
lea r8, [rbp - 0x20]
mov ecx, 8
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005b03f
mov eax, dword [rbp - 0x20]
add rax, 7
and eax, 0xfffffff8
cmp eax, dword [rbp - 0x20]
jae 0x14005af87
mov r14d, 0xc0000095
jmp 0x14005b03f
mov dword [rbp - 0x20], eax
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14005afb9
mov r14d, 0xc0000017
mov rbx, rdi
jmp 0x14005b03f
mov qword [rbp - 0x60], rax
lea r8, [rbp - 0x60]
mov eax, dword [rbp - 0x70]
mov r11d, 4
mov edx, r11d
mov dword [rbx], eax
mov rcx, rbx
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b022
mov rcx, qword [rbp - 0x60]
lea r8, [rbp - 0x60]
mov eax, dword [rbp - 0x6c]
mov dword [rcx], eax
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b022
mov ecx, dword [rbp - 0x20]
mov rax, qword [rbp + 0x180]
mov qword [rcx + rbx - 8], rax
mov r8d, dword [rbp - 0x6c]
mov rdx, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x60]
call sub.msvcrt.dll_memcpy
mov r12d, dword [rbp - 0x20]
mov qword [rbp + 8], rbx
mov rbx, rdi
test rbx, rbx
je 0x14005b03b
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rbp + 8]
or r14d, 0x10000000
jl 0x14005c8e3
mov qword [rbp + 0x1e0], rdi
mov r15, rdi
mov qword [rbp + 0x1f0], rdi
mov qword [rbp + 0x200], rdi
mov qword [rbp + 0x210], rdi
mov qword [rbp + 0x100], rdi
mov qword [rbp + 0x1d0], rdi
test rbx, rbx
jne 0x14005b089
mov r14d, 0xc000000d
jmp 0x14005b7bc
mov r14d, r12d
mov qword [rbp - 0x50], r14
test r12d, r12d
je 0x14005b70e
lea rax, [r14 + 8]
mov rcx, rax
mov qword [rbp + 0x18], rax
call fcn.14000ab60
mov qword [rbp - 0x58], rax
mov r13, rax
test rax, rax
je 0x14005b70e
mov dl, dil
mov rcx, rdi
test r12d, r12d
je 0x14005b0cf
xor dl, byte [rcx + rbx]
inc rcx
cmp rcx, r14
jb 0x14005b0c4
or r11d, 0xffffffff
mov dword [rbp - 0x60], edi
mov r10, rbx
mov dword [rsp + 0x74], r11d
mov r8, r14
mov dword [rsp + 0x38], edi
mov ebx, edi
mov r9, rax
mov dword [rbp - 0x7c], ebx
and r8d, 7
je 0x14005b1c6
mov dword [rbp - 0x60], edi
mov ecx, edi
mov dword [rsp + 0x38], ecx
mov r12d, edi
test r8d, r8d
jle 0x14005b147
mov r11d, 0x38
movzx eax, byte [r10]
cmp ebx, 4
jge 0x14005b129
lea ecx, [r11 - 0x20]
shl eax, cl
mov ecx, dword [rsp + 0x38]
or ecx, eax
mov dword [rsp + 0x38], ecx
jmp 0x14005b135
mov ecx, r11d
shl eax, cl
mov ecx, dword [rsp + 0x38]
or r12d, eax
inc r10
inc ebx
sub r11d, 8
cmp ebx, r8d
jl 0x14005b10e
mov dword [rbp - 0x60], r12d
mov ebx, ecx
mov r11d, r12d
xor ebx, 0x875330f4
xor r11d, 0x549791cd
mov dword [rbp - 0x7c], ebx
mov eax, edi
mov dword [rsp + 0x74], r11d
test r8d, r8d
jle 0x14005b18e
cmp eax, 4
jge 0x14005b175
rol ebx, 8
mov byte [r9], bl
jmp 0x14005b17c
rol r11d, 8
mov byte [r9], r11b
inc r9
inc eax
cmp eax, r8d
jl 0x14005b168
mov ebx, dword [rbp - 0x7c]
mov r11d, dword [rsp + 0x74]
lea eax, [r8 - 4]
test eax, eax
jle 0x14005b1ad
mov ecx, 4
sub ecx, eax
shl ecx, 3
shr r11d, cl
shl r11d, cl
mov dword [rsp + 0x74], r11d
jmp 0x14005b1c6
mov dword [rsp + 0x74], edi
mov r11d, edi
test eax, eax
jns 0x14005b1c6
neg eax
shl eax, 3
mov ecx, eax
shr ebx, cl
shl ebx, cl
mov dword [rbp - 0x7c], ebx
mov r12, r14
shr r12, 3
test r12, r12
je 0x14005b4fd
mov r15d, dword [rbp - 0x60]
lea r14, [r9 + 7]
mov r13d, dword [rsp + 0x38]
lea rdi, [r10 + 2]
movzx eax, byte [rdi - 1]
movzx r10d, byte [rdi - 2]
movzx r9d, byte [rdi + 2]
shl r10d, 8
or r10d, eax
shl r9d, 8
movzx eax, byte [rdi]
lea rdi, [rdi + 8]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 7]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 5]
or r9d, eax
movzx eax, byte [rdi - 4]
shl r9d, 8
or r9d, eax
movzx eax, byte [rdi - 3]
shl r9d, 8
or r9d, eax
xor r11d, r9d
lea eax, [r11 + 0x36fdf9bd]
rol eax, 8
imul ecx, eax, 0x3bd6
mov eax, r11d
ror eax, 9
add ecx, eax
mov eax, 0x36fdf9bd
xor ecx, r10d
xor ebx, ecx
sub eax, ebx
rol eax, 7
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0xb
add ecx, eax
xor r11d, ecx
mov eax, r11d
mov r8d, r11d
xor eax, 0xdb6b
ror r8d, 0xa
imul ecx, eax, 0xf9bd
add r8d, ecx
xor ebx, r8d
mov r8d, 0xdb6b3bd6
lea eax, [rbx + 0x2494c42a]
ror eax, 1
imul ecx, eax, 0x36fd
mov eax, ebx
rol eax, 0xe
xor ecx, eax
mov eax, 0x36fdf9bd
xor r11d, ecx
mov ecx, r11d
xor ecx, r8d
sub eax, ecx
xor ebx, eax
mov eax, ebx
not eax
ror eax, 0xe
add eax, 0xdb6b
imul eax, eax, 0x3bd6
xor r11d, eax
mov eax, r11d
xor eax, r8d
ror eax, 0xf
imul ecx, eax, 0xf9bd
mov eax, r11d
rol eax, 6
xor ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x24948d2d]
xor r11d, eax
mov eax, r11d
xor eax, 0xf9bd
imul ecx, eax, 0x3bd6
mov eax, r11d
shr eax, 6
xor ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, 0x3bd6
rol eax, 3
imul ecx, eax, 0xdb6b
mov eax, ebx
rol eax, 0xc
sub ecx, eax
xor r11d, ecx
lea eax, [r11 + 0x2494c42a]
rol eax, 0xd
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 0xf
xor ecx, eax
mov eax, r8d
xor ebx, ecx
sub eax, ebx
rol eax, 3
imul ecx, eax, 0x36fd
mov eax, ebx
rol eax, 9
sub ecx, eax
xor r11d, ecx
lea eax, [r11 - 0xf9bd]
rol eax, 3
imul ecx, eax, 0x3bd6
mov eax, r11d
shr eax, 0xf
xor ecx, eax
xor ebx, ecx
lea eax, [rbx - 0xf9bd]
imul ecx, eax, 0xdb6b
mov eax, ebx
shr eax, 0xd
sub ecx, eax
mov eax, r8d
xor r11d, ecx
sub eax, r11d
ror eax, 9
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 0xb
xor ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x24948d2d]
xor r11d, eax
mov eax, r11d
mov r8d, r11d
xor eax, 0xdb6b
ror r8d, 7
imul ecx, eax, 0x3bd6
sub ecx, r8d
xor ebx, ecx
mov eax, ebx
xor eax, 0x36fd
rol eax, 4
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0x10
sub ecx, eax
mov eax, 0xdb6b3bd6
xor r11d, ecx
sub eax, r11d
ror eax, 0xa
imul ecx, eax, 0xf9bd
mov eax, r11d
ror eax, 4
add ecx, eax
xor ebx, ecx
lea eax, [rbx + 0x2494c42a]
ror eax, 4
imul ecx, eax, 0x36fd
mov eax, ebx
ror eax, 9
xor ecx, eax
xor r11d, ecx
mov eax, r11d
xor eax, 0x36fdf9bd
rol eax, 8
imul ecx, eax, 0x3bd6
mov eax, r11d
rol eax, 2
sub ecx, eax
mov eax, 0x36fdf9bd
xor ebx, ecx
sub eax, ebx
ror eax, 0xb
imul ecx, eax, 0xdb6b
mov eax, ebx
ror eax, 0xc
sub ecx, eax
xor r11d, ecx
mov eax, r11d
xor eax, 0xdb6b
imul ecx, eax, 0xf9bd
mov eax, r11d
shr eax, 8
xor ecx, eax
xor ebx, ecx
xor r11d, ebx
xor ebx, r13d
mov dword [rbp - 0x7c], ebx
xor r11d, 0xed96c26b
xor r11d, r15d
mov r13d, r10d
mov dword [rsp + 0x74], r11d
mov r15d, r9d
mov byte [r14 - 4], bl
mov al, byte [rsp + 0x74]
ror dword [rbp - 0x7c], 8
mov byte [r14], al
lea r14, [r14 + 8]
ror dword [rsp + 0x74], 8
mov al, byte [rbp - 0x7c]
mov byte [r14 - 0xd], al
mov al, byte [rsp + 0x74]
ror dword [rbp - 0x7c], 8
mov byte [r14 - 9], al
ror dword [rsp + 0x74], 8
mov al, byte [rbp - 0x7c]
mov byte [r14 - 0xe], al
ror dword [rbp - 0x7c], 8
mov al, byte [rsp + 0x74]
mov byte [r14 - 0xa], al
ror dword [rsp + 0x74], 8
mov al, byte [rbp - 0x7c]
mov byte [r14 - 0xf], al
mov al, byte [rsp + 0x74]
mov byte [r14 - 0xb], al
mov ebx, dword [rbp - 0x7c]
mov r11d, dword [rsp + 0x74]
ror ebx, 8
ror r11d, 8
mov dword [rbp - 0x7c], ebx
mov dword [rsp + 0x74], r11d
sub r12, 1
jne 0x14005b1e7
mov r14, qword [rbp - 0x50]
xor edi, edi
mov r13, qword [rbp - 0x58]
mov r15d, edi
movzx eax, dl
mov qword [r13 + r14], rax
mov r14, qword [rbp + 0x18]
mov qword [rbp + 0x1d0], r14
mov qword [rbp + 0x100], r13
lea rax, [0x1400a94f0]
mov ebx, 8
mov qword [rbp + 0x1e0], rax
mov qword [rbp + 0x1f0], rbx
lea r12, [0x1400a9450]
mov qword [rbp + 0x210], 0xa0
mov qword [rbp + 0x200], r12
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
lea r8d, [rbx + 0x28]
mov edx, ebx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14005b572
mov r14d, 0xc0000017
jmp 0x14005b6fd
mov dword [rax], r14d
mov r14d, r14d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, r14d
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x14005b59f
mov r14d, 0xc0000017
jmp 0x14005b681
mov qword [rbx + 8], rax
mov r8, r14
mov rdx, r13
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r14d, 0xa0
mov dword [rbx + 0x10], r14d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, r14d
mov r14d, 8
mov edx, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14005b594
mov qword [rbx + 0x18], rax
movups xmm0, xmmword [r12]
lea ecx, [r14 + 0x78]
movups xmmword [rax], xmm0
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [r12 + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [r12 + 0x30]
movups xmmword [rax + 0x30], xmm1
movups xmm0, xmmword [r12 + 0x40]
movups xmmword [rax + 0x40], xmm0
movups xmm1, xmmword [r12 + 0x50]
movups xmmword [rax + 0x50], xmm1
movups xmm0, xmmword [r12 + 0x60]
movups xmmword [rax + 0x60], xmm0
movups xmm1, xmmword [r12 + 0x70]
movups xmmword [rax + rcx - 0x10], xmm1
movups xmm0, xmmword [r12 + rcx]
movups xmmword [rax + rcx], xmm0
movups xmm1, xmmword [r12 + rcx + 0x10]
movups xmmword [rax + rcx + 0x10], xmm1
mov dword [rbx + 0x20], r14d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, r14d
mov edx, r14d
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14005b594
mov qword [rbx + 0x28], rax
movsd xmm0, qword [0x1400a94f0]
mov r15, rbx
movsd qword [rax], xmm0
mov r14d, edi
mov rbx, rdi
test rbx, rbx
je 0x14005b6fd
mov r12, qword [rbx + 8]
test r12, r12
je 0x14005b6a7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], rdi
mov r12, qword [rbx + 0x18]
test r12, r12
je 0x14005b6c8
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x18], rdi
mov r12, qword [rbx + 0x28]
test r12, r12
je 0x14005b6e9
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14d, r14d
js 0x14005b714
mov qword [rbp + 0xe0], r15
mov r15, rdi
jmp 0x14005b714
mov r14d, 0xc0000001
mov rbx, qword [rbp + 0x100]
test rbx, rbx
je 0x14005b73b
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0x100], rdi
test r15, r15
je 0x14005b7b7
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x14005b761
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 8], rdi
mov rbx, qword [r15 + 0x18]
test rbx, rbx
je 0x14005b782
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x18], rdi
mov rbx, qword [r15 + 0x28]
test rbx, rbx
je 0x14005b7a3
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r13d, dword [rsp + 0x50]
or r14d, 0x10000000
jl 0x14005c8e3
mov r15, qword [rbp + 0xe0]
lea r8, [rsp + 0x38]
mov ecx, 4
mov dword [rsp + 0x38], 4
mov edx, dword [r15]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005b860
mov edx, ecx
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005b860
mov edx, dword [r15 + 0x10]
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005b860
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, 4
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005b860
mov edx, dword [r15 + 0x20]
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
mov eax, dword [rbp + 0x4c]
test r14d, r14d
cmovns eax, dword [rsp + 0x38]
mov dword [rbp + 0x4c], eax
jmp 0x14005b863
mov eax, dword [rbp + 0x4c]
test r14d, r14d
js 0x14005b9af
mov ebx, eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14005b898
mov r14d, 0xc0000017
jmp 0x14005b9af
mov qword [rsp + 0x50], rax
lea r8, [rsp + 0x50]
mov eax, dword [r15]
mov edx, 4
mov rcx, rbx
mov dword [rbx], eax
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov r8d, dword [r15]
mov rdx, qword [r15 + 8]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov edx, dword [r15]
lea r8, [rsp + 0x50]
mov rcx, qword [rsp + 0x50]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov eax, dword [r15 + 0x10]
mov edx, 4
mov dword [rcx], eax
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov r8d, dword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov edx, dword [r15 + 0x10]
lea r8, [rsp + 0x50]
mov rcx, qword [rsp + 0x50]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov eax, dword [r15 + 0x20]
mov edx, 4
mov dword [rcx], eax
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov r8d, dword [r15 + 0x20]
mov rdx, qword [r15 + 0x28]
mov rcx, qword [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov edx, dword [r15 + 0x20]
lea r8, [rsp + 0x50]
mov rcx, qword [rsp + 0x50]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005b996
mov r13d, dword [rbp + 0x4c]
mov qword [rbp - 0x40], rbx
mov rbx, rdi
test rbx, rbx
je 0x14005b9af
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
or r14d, 0x10000000
jl 0x14005c8e3
mov ebx, edi
mov qword [rbp + 0x220], rdi
mov dword [rbp + 0x138], ebx
mov r11d, edi
mov dword [rbp + 0x130], edi
mov qword [rbp + 0x230], rdi
mov dword [rbp + 0x30], 8
mov edx, dword [rsp + 0x30]
lea r8, [rbp + 0x30]
mov ecx, 8
call fcn.14000ad5c
mov r14d, eax
or r14d, 0x10000000
jl 0x14005bc49
mov eax, dword [rbp + 0x30]
add rax, 7
and eax, 0xfffffff8
cmp eax, dword [rbp + 0x30]
jae 0x14005ba22
mov r9d, dword [rbp + 0xb8]
mov r14d, 0xc0000095
jmp 0x14005ba53
mov dword [rbp + 0xac], eax
mov edx, ecx
lea r8, [rbp + 0xac]
mov ecx, eax
call fcn.14000ad5c
mov r9d, dword [rbp + 0xb8]
test eax, eax
mov r14d, eax
cmovns r9d, dword [rbp + 0xac]
mov dword [rbp + 0xb8], r9d
test r14d, r14d
js 0x14005c8e3
cmp qword [rbp - 0x68], rdi
jne 0x14005ba6d
mov r14d, 0xc000000d
jmp 0x14005bc49
cmp dword [rbp - 0x70], 1
jbe 0x14005ba62
mov rcx, qword [rbp - 0x68]
mov r10d, edi
mov qword [rsp + 0x30], rcx
mov r15d, dword [rcx]
lea r8, [rsp + 0x30]
mov edx, 4
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005baf5
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, r15d
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005baf5
mov rcx, qword [rsp + 0x30]
inc r10d
cmp r10d, 1
jb 0x14005ba7f
mov r10d, dword [rcx]
lea r8, [rsp + 0x30]
mov edx, 4
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005baf5
mov rax, qword [rsp + 0x30]
test r10d, r10d
mov r11d, r10d
mov dword [rbp + 0x130], r10d
cmove rax, rdi
mov qword [rbp + 0x220], rax
test r14d, r14d
js 0x14005c8e3
cmp dword [rbp - 0x70], 2
jbe 0x14005ba62
mov rcx, qword [rbp - 0x68]
mov r10d, edi
mov qword [rsp + 0x30], rcx
mov r15d, dword [rcx]
lea r8, [rsp + 0x30]
mov edx, 4
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005bb89
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, r15d
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005bb89
mov rcx, qword [rsp + 0x30]
inc r10d
cmp r10d, 2
jb 0x14005bb14
mov r10d, dword [rcx]
lea r8, [rsp + 0x30]
mov edx, 4
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005bb89
mov rax, qword [rsp + 0x30]
test r10d, r10d
mov ebx, r10d
cmove rax, rdi
mov dword [rbp + 0x138], ebx
mov qword [rbp + 0x230], rax
test r14d, r14d
js 0x14005c8e3
lea r8, [rsp + 0x38]
mov dword [rsp + 0x38], 4
mov edx, r9d
mov ecx, 4
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005bc25
mov edx, ecx
lea r8, [rsp + 0x38]
mov ecx, dword [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005bc25
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, r11d
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005bc25
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, 4
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005bc25
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
mov edx, ebx
call fcn.14000ad5c
mov r14d, eax
mov eax, dword [rbp + 0xc0]
test r14d, r14d
cmovns eax, dword [rsp + 0x38]
mov dword [rbp + 0xc0], eax
jmp 0x14005bc2b
mov eax, dword [rbp + 0xc0]
test r14d, r14d
js 0x14005c8e3
cmp eax, 0x400000
jbe 0x14005bc46
mov r14d, 0x8000ffff
jmp 0x14005c8e3
mov dword [rbp - 0x34], eax
test r14d, r14d
js 0x14005c8e3
mov ebx, dword [rbp - 0x34]
mov r14d, edi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8d, ebx
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x14005bc7f
mov r14d, 0xc0000017
mov r12, rdi
jmp 0x14005bc86
mov r12, rax
mov qword [rbp - 0x28], rax
or r14d, 0x10000000
jl 0x14005c8e3
mov r14, qword [rbp - 0x40]
test r14, r14
jne 0x14005bca7
mov r14d, 0x80070057
jmp 0x14005c8e3
test r12, r12
je 0x14005bc9c
lea r8, [rbp + 0x240]
mov ecx, 1
lea rdx, [0x1400735c8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
test eax, eax
je 0x14005bce5
mov rcx, qword [rbp + 0x240]
lea rdx, [0x1400735e0]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
test rax, rax
jne 0x14005bd0e
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov r14d, eax
test eax, eax
jle 0x14005bcfd
movzx r14d, ax
or r14d, 0x80070000
test r14d, r14d
js 0x14005bd08
mov r14d, 0x80004005
mov r9d, dword [rbp - 0x34]
jmp 0x14005bd69
mov eax, dword [rbp - 0x34]
mov rcx, rbx
mov dword [rbp + 0x2e4], eax
mov qword [rbp + 0x2d0], r14
mov dword [rbp + 0x2e0], r13d
mov qword [rbp + 0x2d8], r12
mov dword [rbp + 0x2e8], edi
call qword [0x1400719c8]
xor r9d, r9d
lea rdx, [rbp + 0x2d0]
lea r8d, [r9 + 0x20]
lea ecx, [r8 + 0x66]
call rbx
mov r9d, dword [rbp - 0x34]
mov r14d, eax
or r14d, 0x10000000
cmovns r9d, dword [rbp + 0x2e4]
mov dword [rbp - 0x34], r9d
cmp r14d, 0xd0000023
jne 0x14005bd7d
mov r14d, 0x8007007a
jmp 0x14005c8e3
test r14d, r14d
js 0x14005c8e3
mov dword [rsp + 0x38], edi
mov r15, rdi
mov qword [rsp + 0x50], r12
cmp r9d, 4
jae 0x14005bda3
mov r14d, 0xc000003e
jmp 0x14005c174
mov r10d, dword [r12]
lea r8, [rsp + 0x50]
mov edx, 4
mov dword [rsp + 0x30], r10d
mov rcx, r12
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c174
lea r8, [rsp + 0x38]
xor ecx, ecx
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r10d
jb 0x14005bd98
mov rax, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov rcx, rax
mov qword [rbp + 0x18], rax
mov edx, r10d
mov qword [rbp - 0x58], r10
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c174
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, 4
jb 0x14005bd98
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov edx, 4
mov r13d, dword [rcx]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c174
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, r13d
jb 0x14005bd98
mov rax, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov rcx, rax
mov qword [rbp - 0x60], rax
mov edx, r13d
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c174
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
mov eax, r9d
sub eax, dword [rsp + 0x38]
cmp eax, 4
jb 0x14005bd98
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x50]
mov edx, 4
mov r12d, dword [rcx]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c174
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
mov ecx, dword [rsp + 0x38]
mov eax, r9d
sub eax, ecx
cmp eax, r12d
jb 0x14005bd98
lea r8, [rsp + 0x38]
mov edx, r12d
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c174
cmp r9d, dword [rsp + 0x38]
jne 0x14005bd98
lea ecx, [r12 + r13]
mov eax, r9d
add ecx, r10d
add rcx, 0xc
cmp rcx, rax
jne 0x14005bd98
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
lea r8d, [rdx + 0x28]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
test rax, rax
jne 0x14005bf87
mov r14d, 0xc0000017
jmp 0x14005c0ec
mov r14d, edi
cmp qword [rbp + 0x18], rdi
je 0x14005bfd4
mov eax, dword [rsp + 0x30]
mov dword [rbx], eax
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, qword [rbp - 0x58]
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
jne 0x14005bfbe
mov r14d, 0xc0000017
jmp 0x14005c070
mov qword [rbx + 8], rax
mov r8, qword [rbp - 0x58]
mov rcx, rax
mov rdx, qword [rbp + 0x18]
call sub.msvcrt.dll_memcpy
jmp 0x14005bfda
mov dword [rax], edi
mov qword [rax + 8], rdi
cmp qword [rbp - 0x60], rdi
je 0x14005c018
mov dword [rbx + 0x10], r13d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov edx, 8
mov rcx, rax
mov r8, r13
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14005bfb3
mov qword [rbx + 0x18], rax
mov rdx, qword [rbp - 0x60]
mov r8, r13
mov rcx, rax
mov r14d, edi
call sub.msvcrt.dll_memcpy
jmp 0x14005c01f
mov dword [rbx + 0x10], edi
mov qword [rbx + 0x18], rdi
cmp qword [rsp + 0x50], rdi
je 0x14005c063
mov dword [rbx + 0x20], r12d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x14005bfb3
mov qword [rbx + 0x28], rax
mov rdx, qword [rsp + 0x50]
mov r8, r12
mov rcx, rax
mov r14d, edi
call sub.msvcrt.dll_memcpy
jmp 0x14005c06a
mov dword [rbx + 0x20], edi
mov qword [rbx + 0x28], rdi
mov r15, rbx
mov rbx, rdi
test rbx, rbx
je 0x14005c0ec
mov r12, qword [rbx + 8]
test r12, r12
je 0x14005c096
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 8], rdi
mov r12, qword [rbx + 0x18]
test r12, r12
je 0x14005c0b7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x18], rdi
mov r12, qword [rbx + 0x28]
test r12, r12
je 0x14005c0d8
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbx + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14d, r14d
js 0x14005c0f8
mov qword [rbp + 0x28], r15
mov r15, rdi
test r15, r15
je 0x14005c174
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x14005c11e
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 8], rdi
mov rbx, qword [r15 + 0x18]
test rbx, rbx
je 0x14005c13f
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x18], rdi
mov rbx, qword [r15 + 0x28]
test rbx, rbx
je 0x14005c160
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
or r14d, 0x10000000
jl 0x14005c8e3
mov rax, qword [rbp + 0x28]
mov rbx, rdi
mov qword [rbp + 0x58], rbx
mov r14d, edi
mov qword [rbp + 0x1a0], rdi
mov dword [rsp + 0x30], edi
test rax, rax
jne 0x14005c1aa
mov r14d, 0xc000000d
jmp 0x14005c6bd
mov r15, qword [rax + 8]
mov qword [rsp + 0x38], r15
test r15, r15
je 0x14005c19f
cmp dword [rax], edi
je 0x14005c19f
mov r12d, dword [rax]
mov dword [rsp + 0x50], edi
test r12, r12
je 0x14005c69a
add r12, 0xfffffffffffffff8
mov rcx, r12
mov qword [rbp - 0x58], r12
call fcn.14000ab60
mov qword [rbp + 0x18], rax
mov r13, rax
test rax, rax
je 0x14005c696
mov r8, r12
mov dword [rsp + 0x7c], edi
mov dl, dil
mov r10, r15
mov byte [rsp + 0x68], dl
mov r9, rax
and r8d, 7
je 0x14005c2db
or r15d, 0xffffffff
mov dword [rbp + 0x10], edi
mov dword [rsp + 0x70], r15d
mov r15d, edi
mov dword [rbp - 0x60], ebx
mov r11d, edi
test r8d, r8d
jle 0x14005c25b
mov edx, 0x38
movzx eax, byte [r10]
cmp r11d, 4
jge 0x14005c23c
lea ecx, [rdx - 0x20]
shl eax, cl
or ebx, eax
jmp 0x14005c243
mov ecx, edx
shl eax, cl
or r15d, eax
inc r10
inc r11d
sub edx, 8
cmp r11d, r8d
jl 0x14005c229
mov dword [rbp + 0x10], r15d
mov dl, dil
mov dword [rbp - 0x60], ebx
mov r15d, ebx
mov eax, edi
mov ebx, dword [rbp + 0x10]
xor r15d, 0xe5d64a7e
xor ebx, 0x9c54a8c9
mov dword [rsp + 0x7c], r15d
mov dword [rsp + 0x70], ebx
test r8d, r8d
jle 0x14005c2a5
cmp eax, 4
jge 0x14005c28c
rol r15d, 8
mov byte [r9], r15b
jmp 0x14005c292
rol ebx, 8
mov byte [r9], bl
inc r9
inc eax
cmp eax, r8d
jl 0x14005c27e
mov r15d, dword [rsp + 0x7c]
mov ebx, dword [rsp + 0x70]
lea eax, [r8 - 4]
test eax, eax
jle 0x14005c2bd
mov ecx, 4
sub ecx, eax
shl ecx, 3
shr ebx, cl
shl ebx, cl
jmp 0x14005c2e1
mov ebx, edi
mov dword [rsp + 0x70], ebx
test eax, eax
jns 0x14005c2e5
neg eax
shl eax, 3
mov ecx, eax
shr r15d, cl
shl r15d, cl
mov dword [rsp + 0x7c], r15d
jmp 0x14005c2e5
mov dword [rbp - 0x60], edi
mov r15d, edi
mov dword [rsp + 0x70], ebx
mov rax, r12
shr rax, 3
test rax, rax
je 0x14005c626
mov edx, dword [rbp - 0x60]
lea r12, [r9 + 7]
mov r14d, dword [rbp + 0x10]
lea rdi, [r10 + 2]
mov r13, rax
movzx eax, byte [rdi - 1]
mov r9d, 0x532d7f78
movzx r11d, byte [rdi - 2]
movzx r10d, byte [rdi + 2]
shl r11d, 8
or r11d, eax
shl r10d, 8
movzx eax, byte [rdi]
lea rdi, [rdi + 8]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 7]
shl r11d, 8
or r11d, eax
movzx eax, byte [rdi - 5]
or r10d, eax
xor r15d, r11d
movzx eax, byte [rdi - 4]
shl r10d, 8
or r10d, eax
movzx eax, byte [rdi - 3]
shl r10d, 8
or r10d, eax
xor ebx, r10d
xor ebx, r15d
xor ebx, 0x5384b529
lea eax, [rbx - 0x532d7f78]
rol eax, 5
imul ecx, eax, 0xca51
mov eax, ebx
rol eax, 0xa
add ecx, eax
xor r15d, ecx
lea eax, [r15 + 0xa9ca51]
ror eax, 9
imul ecx, eax, 0x532d
mov eax, r15d
rol eax, 2
sub ecx, eax
xor ebx, ecx
lea eax, [rbx - 0xca51]
imul ecx, eax, 0x7f78
mov eax, ebx
shr eax, 0xd
sub ecx, eax
xor r15d, ecx
mov eax, r15d
xor eax, 0x532d
rol eax, 6
imul ecx, eax, 0xa9
mov eax, r15d
rol eax, 2
sub ecx, eax
mov eax, 0xa9ca51
xor ebx, ecx
mov ecx, ebx
xor ecx, r9d
sub eax, ecx
xor r15d, eax
mov eax, r15d
mov r8d, r15d
xor eax, 0xca51
ror r8d, 6
imul ecx, eax, 0x532d
xor r8d, ecx
xor ebx, r8d
lea eax, [rbx + 0xa9ca51]
ror eax, 0xf
imul ecx, eax, 0x7f78
mov eax, ebx
rol eax, 2
add ecx, eax
xor r15d, ecx
lea eax, [r15 - 0x532d7f78]
ror eax, 0xe
imul ecx, eax, 0xa9
mov eax, r15d
rol eax, 8
sub ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, r9d
mov r8d, 0x532d
ror eax, 0xc
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 0xa
xor ecx, eax
xor r15d, ecx
mov eax, r15d
xor eax, 0xa9
imul ecx, eax, 0x532d
mov eax, r15d
shr eax, 0xa
xor ecx, eax
xor ebx, ecx
mov eax, ebx
mov r9d, ebx
not eax
ror eax, 5
add eax, 0x7f78
imul eax, eax, 0xa9
xor r15d, eax
xor r9d, r15d
xor r9d, 0x5384b529
mov eax, r9d
ror eax, 5
sub eax, r8d
imul eax, eax, 0xa9
xor ebx, eax
lea eax, [rbx - 0x532d]
rol eax, 3
imul ecx, eax, 0x7f78
mov eax, ebx
shr eax, 7
xor ecx, eax
xor r9d, ecx
lea eax, [r9 - 0x532d7f78]
rol eax, 0xe
imul ecx, eax, 0xa9
mov eax, r9d
ror eax, 0xc
xor ecx, eax
xor ebx, ecx
mov eax, ebx
xor eax, 0x532d7f78
rol eax, 9
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 2
add ecx, eax
xor r9d, ecx
lea eax, [r9 + 0xa9ca51]
rol eax, 8
imul ecx, eax, 0x532d
mov eax, r9d
ror eax, 6
sub ecx, eax
mov eax, 0xa9ca51
xor ebx, ecx
sub eax, ebx
ror eax, 0xe
imul ecx, eax, 0x7f78
mov eax, ebx
ror eax, 0xc
sub ecx, eax
xor r9d, ecx
mov eax, r9d
xor eax, r8d
rol eax, 5
imul ecx, eax, 0xa9
mov eax, r9d
rol eax, 0xf
xor ecx, eax
xor ebx, ecx
lea eax, [rbx - 0x532d7f78]
rol eax, 0xa
imul ecx, eax, 0xca51
mov eax, ebx
ror eax, 4
xor ecx, eax
xor r9d, ecx
mov eax, r9d
not eax
ror eax, 2
add eax, r8d
imul eax, eax, 0xca51
xor ebx, eax
mov eax, ebx
mov r8d, ebx
xor eax, 0xca51
ror r8d, 6
imul ecx, eax, 0x7f78
xor ebx, r14d
mov dword [rsp + 0x70], ebx
mov r14d, r10d
add r8d, ecx
xor r8d, edx
mov edx, r11d
xor r9d, r8d
mov dword [rsp + 0x7c], r9d
mov byte [r12 - 4], r9b
mov al, byte [rsp + 0x70]
ror dword [rsp + 0x7c], 8
mov byte [r12], al
lea r12, [r12 + 8]
ror dword [rsp + 0x70], 8
mov al, byte [rsp + 0x7c]
mov byte [r12 - 0xd], al
mov al, byte [rsp + 0x70]
ror dword [rsp + 0x7c], 8
mov byte [r12 - 9], al
ror dword [rsp + 0x70], 8
mov al, byte [rsp + 0x7c]
mov byte [r12 - 0xe], al
ror dword [rsp + 0x7c], 8
mov al, byte [rsp + 0x70]
mov byte [r12 - 0xa], al
ror dword [rsp + 0x70], 8
mov al, byte [rsp + 0x7c]
mov byte [r12 - 0xf], al
mov al, byte [rsp + 0x70]
mov byte [r12 - 0xb], al
mov r15d, dword [rsp + 0x7c]
mov ebx, dword [rsp + 0x70]
ror r15d, 8
ror ebx, 8
mov dword [rsp + 0x7c], r15d
mov dword [rsp + 0x70], ebx
sub r13, 1
jne 0x14005c307
mov dl, byte [rsp + 0x68]
xor edi, edi
mov r14d, dword [rsp + 0x30]
mov r12, qword [rbp - 0x58]
mov r13, qword [rbp + 0x18]
mov rax, rdi
test r12, r12
je 0x14005c63a
xor dl, byte [rax + r13]
inc rax
cmp rax, r12
jb 0x14005c62e
mov rcx, qword [rsp + 0x38]
movzx eax, dl
cmp rax, qword [r12 + rcx]
je 0x14005c654
mov rbx, qword [rbp + 0x58]
mov r15d, 0xc004d501
jmp 0x14005c66a
mov r15d, dword [rsp + 0x50]
mov rbx, r13
mov qword [rbp + 0x58], rbx
mov r13, rdi
mov qword [rbp + 0x1a0], r12
test r13, r13
je 0x14005c67b
mov rcx, r13
call fcn.140025e74
mov rbx, qword [rbp + 0x58]
test r15d, r15d
js 0x14005c69a
mov eax, dword [rbp + 0x1a0]
mov qword [rbp + 0x40], rbx
mov rbx, rdi
mov qword [rbp + 0x58], rbx
mov dword [rbp - 0x14], eax
jmp 0x14005c6a0
mov rbx, qword [rbp + 0x58]
mov r14d, 0xc0000001
test rbx, rbx
je 0x14005c6bd
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0x58], rdi
or r14d, 0x10000000
jl 0x14005c8e3
cmp dword [rbp - 0x14], 4
mov r9, qword [rbp + 0x40]
mov qword [rsp + 0x30], r9
mov dword [rsp + 0x38], edi
jb 0x14005c8d8
mov eax, dword [r9]
lea r8, [rsp + 0x30]
mov edx, 4
mov dword [rsp + 0x50], eax
mov rcx, r9
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c8de
lea r8, [rsp + 0x38]
xor ecx, ecx
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c8de
mov eax, dword [rbp - 0x14]
sub eax, dword [rsp + 0x38]
cmp eax, edx
jb 0x14005c8d8
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov r12d, dword [rcx]
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c8de
mov ecx, dword [rsp + 0x38]
lea r8, [rsp + 0x38]
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c8de
mov eax, dword [rbp - 0x14]
mov ecx, dword [rsp + 0x38]
sub eax, ecx
cmp eax, r12d
jb 0x14005c8d8
lea r8, [rsp + 0x38]
mov edx, r12d
call fcn.14000ad5c
mov r14d, eax
test eax, eax
js 0x14005c8de
mov edx, dword [rbp - 0x14]
mov rbx, qword [rsp + 0x30]
lea rax, [rdx + r9]
lea rcx, [rbx + r12]
cmp rax, rcx
jb 0x14005c8d8
sub rdx, rbx
sub rdx, r12
add rdx, r9
cmp rdx, 8
jae 0x14005c8d8
mov dword [rbp - 0x60], edi
mov r13, rdi
mov r14d, edi
test rbx, rbx
je 0x14005c872
lea r8, [rbp - 0x50]
mov edx, r12d
mov rcx, rbx
mov r9, rbx
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c8ca
mov r11, qword [rbp - 0x50]
cmp rbx, r11
jae 0x14005c86d
mov r10d, dword [rbp + 0x140]
lea r8, [rbp - 0x50]
mov edx, 4
mov rcx, r9
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c8ca
cmp qword [rbp - 0x50], r11
ja 0x14005c89e
mov edx, dword [r9]
lea r8, [rsp + 0x30]
mov ecx, 4
call fcn.14000ad5c
test eax, eax
mov r14d, eax
cmovns r10d, dword [rsp + 0x30]
mov dword [rbp + 0x140], r10d
js 0x14005c8ca
mov edx, r10d
lea r8, [rbp - 0x58]
mov rcx, r9
call fcn.14000ad74
mov r14d, eax
test eax, eax
js 0x14005c8ca
mov r9, qword [rbp - 0x58]
cmp r9, r11
ja 0x14005c89e
inc dword [rbp - 0x60]
cmp r9, r11
jb 0x14005c7f6
cmp r9, r11
jne 0x14005c89e
test r12d, r12d
je 0x14005c8a9
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r12
mov edx, 8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r13, rax
test rax, rax
jne 0x14005c8a6
mov r14d, 0xc0000017
jmp 0x14005c8ca
mov r14d, 0xc000000d
jmp 0x14005c8de
mov r14d, edi
test rbx, rbx
je 0x14005c8bc
mov r8, r12
mov rdx, rbx
mov rcx, r13
call sub.msvcrt.dll_memcpy
mov eax, dword [rbp - 0x60]
mov dword [rbp + 0x68], eax
mov qword [rbp + 0x70], r13
mov dword [rbp + 0x6c], r12d
test r14d, r14d
js 0x14005c8de
mov eax, dword [rsp + 0x50]
cmp eax, dword [rbp + 0x68]
je 0x14005c8de
mov r14d, 0xc000003e
bts r14d, 0x1c
mov r15, qword [rbp + 8]
test r15, r15
je 0x14005c900
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r15, qword [rbp + 0xe0]
test r15, r15
je 0x14005c98a
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x14005c92d
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 8], rdi
mov rbx, qword [r15 + 0x18]
test rbx, rbx
je 0x14005c94e
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x18], rdi
mov rbx, qword [r15 + 0x28]
test rbx, rbx
je 0x14005c96f
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0xe0], rdi
mov rbx, qword [rbp - 0x40]
test rbx, rbx
je 0x14005c9a7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rbp - 0x28]
test rbx, rbx
je 0x14005c9c4
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r15, qword [rbp + 0x28]
test r15, r15
je 0x14005ca44
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x14005c9ee
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 8], rdi
mov rbx, qword [r15 + 0x18]
test rbx, rbx
je 0x14005ca0f
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x18], rdi
mov rbx, qword [r15 + 0x28]
test rbx, rbx
je 0x14005ca30
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [r15 + 0x28], rdi
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rbp + 0x40]
test rbx, rbx
je 0x14005ca61
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14d, r14d
js 0x14005cb6f
mov r9d, dword [rbp + 0x68]
cmp r9d, 1
jb 0x14005cb6f
mov rbx, qword [rbp + 0x70]
test rbx, rbx
je 0x14005cb6f
test r9d, r9d
je 0x14005cb6f
mov r10d, dword [rbx]
lea r8, [rbp - 0x28]
mov edx, 4
mov qword [rbp - 0x28], rbx
mov rcx, rbx
call fcn.14000ad74
test eax, eax
js 0x14005cb6f
mov rax, qword [rbp - 0x28]
test r10d, r10d
mov dword [rbp + 0x1c0], r10d
cmove rax, rdi
mov qword [rbp + 0x310], rax
cmp r10d, edx
jne 0x14005cb6f
mov eax, dword [rax]
mov dword [rbp + 0x38], eax
test eax, eax
js 0x14005cb6f
cmp r9d, 1
jbe 0x14005cb6f
mov qword [rsp + 0x30], rbx
mov r9d, edi
lea r8, [rsp + 0x30]
mov edx, 4
mov rcx, rbx
call fcn.14000ad74
test eax, eax
js 0x14005cb6f
mov edx, dword [rbx]
lea r8, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
call fcn.14000ad74
test eax, eax
js 0x14005cb6f
inc r9d
cmp r9d, 1
jae 0x14005cb2a
mov rbx, qword [rsp + 0x30]
jmp 0x14005caef
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x30]
mov edx, 4
mov r9d, dword [rcx]
call fcn.14000ad74
test eax, eax
js 0x14005cb6f
mov rax, qword [rsp + 0x30]
test r9d, r9d
mov dword [rbp + 0x2a8], r9d
cmove rax, rdi
mov qword [rbp + 0x318], rax
cmp r9d, 8
jne 0x14005cb6f
mov rax, qword [rax]
mov qword [rbp + 0x320], rax
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
jmp 0x14005cb7e
mov r14, rdi
mov rbx, qword [rbp - 0x68]
mov qword [rbp - 0x70], 0
test rbx, rbx
je 0x14005cba7
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp - 0x68], rdi
mov rbx, qword [rbp + 0x70]
mov qword [rbp + 0x68], 0
test rbx, rbx
je 0x14005cbd0
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, rbx
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rbp + 0x70], rdi
test r15, r15
je 0x14005cbe9
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r15
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14, r14
je 0x14005cc02
call qword [sym.imp.api_ms_win_core_heap_l1_2_0.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rbp + 0xd0]
mov r13d, 0x8007007a
mov ebx, dword [rbp + 0xd8]
mov r14d, dword [rbp + 0x88]
mov r15d, dword [rbp + 0x80]
mov r12, qword [rbp + 0x178]
mov dword [rbp + 0x270], eax
mov rax, qword [rbp + 0x168]
mov qword [rbp + 0x110], rax
mov qword [rbp + 8], rdi
jmp 0x14005cc61
mov r14d, dword [rbp + 0x88]
mov r13d, 0x8007007a
mov r15d, dword [rbp + 0x80]
mov r12, qword [rbp + 0x178]
mov ebx, dword [rbp + 0x38]
lea rcx, [rbp + 8]
call fcn.14000a6e8
test esi, esi
jns 0x14005ccb3
cmp esi, 0xd0000034
jne 0x14005cc7f
mov esi, 0xc004f012
mov ebx, esi
jmp 0x14005ccd5
cmp esi, 0xd00000e5
je 0x14005cc9e
cmp esi, 0xc004d501
je 0x14005cc9e
cmp esi, 0xd000003e
jne 0x14005cca3
mov esi, 0xc004f028
jmp 0x14005cc7b
mov esi, 0xc004f027
test esi, esi
jns 0x14005ccb3
cmp esi, r13d
jne 0x14005cc7b
mov ebx, 0xc004f01e
jmp 0x14005ccd5
cmp ebx, 4
jne 0x14005ccac
mov rcx, qword [rbp + 0x110]
call fcn.14000a740
mov ebx, dword [rbp + 0x150]
test al, al
cmovne rcx, rdi
mov eax, dword [rcx]
mov dword [rbp + 4], eax
lea rcx, [rbp + 0x110]
call fcn.14000a6e8
test ebx, ebx
js 0x14005cd74
cmp dword [rbp + 4], 1
jne 0x14005cd74
mov rcx, qword [0x1400a92b0]
lea r13, [0x1400a92b0]
cmp rcx, r13
je 0x14005cd21
test byte [rcx + 0x1c], 0x80
je 0x14005cd21
mov rcx, qword [rcx + 0x10]
lea r8, [0x14009ce78]
mov edx, 0x11
call fcn.14003d1bc
mov rax, qword [rbp + 0x250]
mov r9d, r15d
mov r8, qword [rbp + 0x260]
mov edx, r14d
mov rcx, r12
mov qword [rsp + 0x20], rax
call fcn.140057af4
mov edi, eax
mov rax, qword [0x1400a92b0]
cmp rax, r13
je 0x14005cdf3
test byte [rax + 0x1c], 0x80
je 0x14005cdbb
mov rcx, qword [rax + 0x10]
lea r8, [0x14009ce78]
mov edx, 0x12
mov r9d, edi
call fcn.14003d1e0
jmp 0x14005cdb4
mov esi, 0xd
mov ecx, esi
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_SetLastError]
mov rax, qword [0x1400a92b0]
lea r13, [0x1400a92b0]
cmp rax, r13
je 0x14005cdf3
test byte [rax + 0x1c], 0x20
je 0x14005cdbb
mov rcx, qword [rax + 0x10]
lea edx, [rsi + 6]
mov r9d, ebx
mov dword [rsp + 0x20], esi
lea r8, [0x14009ce78]
call fcn.140057a4c
mov rax, qword [0x1400a92b0]
cmp rax, r13
je 0x14005cdf3
test byte [rax + 0x1c], 0x80
je 0x14005cdf3
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov rcx, qword [0x1400a92b0]
lea r8, [0x14009ce78]
mov dword [rsp + 0x28], eax
mov edx, 0x14
mov r9d, edi
mov dword [rsp + 0x20], ebx
mov rcx, qword [rcx + 0x10]
call fcn.140053f64
mov eax, edi
add rsp, 0x438
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret