Function at 0x18006a5e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov rsi, rdx
mov rdi, rcx
mov rax, qword [0x18010e118]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
mov ebx, dword [rcx]
cmp ebx, 0x190
jl 0x18006af78
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x40], rax
lea r13, [rsp + 0x58]
mov qword [rsp + 0x38], r13
lea rbx, [rsp + 0x70]
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x118]
lea rdx, [rsp + 0x100]
lea r8, [rsp + 0xe8]
lea r9, [rsp + 0xd0]
call fcn.180078240
mov r15d, eax
test eax, eax
jne 0x18006bc48
movsxd r12, dword [rdi]
imul r14, r12, 0x55555556
mov rax, r14
shr rax, 0x3f
shr r14, 0x20
add r14d, eax
lea eax, [r14 + r14*8]
lea ebp, [rax + rax*2]
add ebp, r14d
lea r8, [rsp + 0x88]
mov rcx, rdi
mov edx, ebp
call fcn.18007cec0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
cmp rbx, rdi
je 0x18006a723
mov edx, dword [rdi]
cmp dword [rsp + 0x74], edx
jge 0x18006a6f0
lea rcx, [rsp + 0x70]
call fcn.180076490
mov r15d, eax
test eax, eax
jne 0x18006ae9d
mov edx, dword [rdi]
mov rax, qword [rsp + 0x80]
test edx, edx
jg 0x18006a759
xor ecx, ecx
cmp ecx, dword [rsp + 0x70]
jge 0x18006a718
mov dword [rax], 0
add rax, 4
inc ecx
cmp ecx, dword [rsp + 0x70]
jl 0x18006a704
mov edx, dword [rdi]
mov dword [rsp + 0x70], edx
mov eax, dword [rdi + 8]
mov dword [rsp + 0x78], eax
cmp r12d, 3
jl 0x18006a7c9
cmp dword [rsp + 0x70], r14d
jg 0x18006a798
mov dword [rsp + 0x78], 0
mov dword [rsp + 0x70], 0
movsxd r8, dword [rsp + 0x74]
test r8, r8
jne 0x18006a7ff
xor eax, eax
jmp 0x18006a816
mov r8, qword [rdi + 0x10]
xor ecx, ecx
mov edx, dword [r8]
add r8, 4
mov dword [rax], edx
add rax, 4
inc ecx
mov edx, dword [rdi]
cmp ecx, edx
jl 0x18006a75f
jmp 0x18006a6fe
cmp edx, r9d
jge 0x18006a792
mov dword [rcx], 0
add rcx, 4
inc edx
mov eax, dword [rsp + 0x70]
cmp edx, eax
jl 0x18006a77b
sub eax, r14d
mov dword [rsp + 0x70], eax
jmp 0x18006a816
mov rcx, qword [rsp + 0x80]
mov eax, r14d
lea r8, [rcx + rax*4]
xor edx, edx
mov eax, dword [r8]
add r8, 4
mov dword [rcx], eax
add rcx, 4
inc edx
mov r9d, dword [rsp + 0x70]
mov eax, r9d
sub eax, r14d
cmp edx, eax
jl 0x18006a7a9
jmp 0x18006a776
mov dword [rsp + 0x78], 0
mov dword [rsp + 0x70], 0
movsxd r8, dword [rsp + 0x74]
test r8, r8
je 0x18006a8cb
shl r8, 2
mov rcx, qword [rsp + 0x80]
xor edx, edx
call fcn.1800a3830
jmp 0x18006a8cb
shl r8, 2
mov rcx, qword [rsp + 0x80]
xor edx, edx
call fcn.1800a3830
mov eax, dword [rsp + 0x70]
lea ecx, [rax + rax*8]
lea ecx, [rcx + rcx*2]
add ecx, eax
cmp ecx, ebp
jle 0x18006a8cb
mov ecx, ebp
shr ecx, 2
imul rcx, rcx, 0x24924925
shr rcx, 0x20
lea edx, [rcx + rcx*8]
lea edx, [rdx + rdx*2]
add edx, ecx
xor r8d, r8d
sub ebp, edx
setne r8b
add r8d, ecx
cmp r8d, eax
jl 0x18006a853
mov eax, ecx
jmp 0x18006a87b
mov eax, ecx
cmp ebp, 1
mov rcx, rax
sbb rcx, 0xffffffffffffffff
mov rdx, qword [rsp + 0x80]
mov dword [rdx + rcx*4], 0
inc rcx
movsxd rdx, dword [rsp + 0x70]
cmp rcx, rdx
jl 0x18006a85f
mov edx, 0xffffffff
mov ecx, ebp
shl edx, cl
not edx
mov rcx, qword [rsp + 0x80]
and dword [rcx + rax*4], edx
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x18006a8be
mov rcx, qword [rsp + 0x80]
lea rdx, [rax - 1]
mov r8d, edx
cmp dword [rcx + r8*4], 0
jne 0x18006a8cb
mov dword [rsp + 0x70], edx
cmp rax, 1
mov rax, rdx
ja 0x18006a8a1
jmp 0x18006a8c3
test rax, rax
jne 0x18006a8cb
mov dword [rsp + 0x78], 0
cmp r13, rdi
je 0x18006a923
mov edx, dword [rdi]
cmp dword [rsp + 0x5c], edx
jge 0x18006a8ef
lea rcx, [rsp + 0x58]
call fcn.180076490
mov r15d, eax
test eax, eax
jne 0x18006ae9d
mov edx, dword [rdi]
mov rax, qword [rsp + 0x68]
test edx, edx
jg 0x18006af01
xor ecx, ecx
cmp ecx, dword [rsp + 0x58]
jge 0x18006a918
mov dword [rax], 0
add rax, 4
inc ecx
cmp ecx, dword [rsp + 0x58]
jl 0x18006a904
mov edx, dword [rdi]
mov dword [rsp + 0x58], edx
mov eax, dword [rdi + 8]
mov dword [rsp + 0x60], eax
lea edi, [r14 + r14]
cmp r12d, 3
jl 0x18006a961
cmp dword [rsp + 0x58], edi
jg 0x18006af49
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x58], 0
movsxd r8, dword [rsp + 0x5c]
test r8, r8
je 0x18006a961
shl r8, 2
mov rcx, qword [rsp + 0x68]
xor edx, edx
call fcn.1800a3830
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x118]
call fcn.18006a5e0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0xb8]
call fcn.18006a5e0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0xa0]
call fcn.180078570
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0xa0]
mov r8, rcx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
mov rdx, rcx
call fcn.180078570
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0xa0]
mov r8, rcx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x100]
call fcn.18006a5e0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0xa0]
call fcn.180078570
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0xa0]
mov r8, rcx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
mov rdx, rcx
call fcn.180078570
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0xa0]
mov r8, rcx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0xd0]
call fcn.18006a5e0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x70]
lea r8, [rsp + 0xa0]
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0xa0]
mov r8, rcx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0xe8]
call fcn.18006a5e0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x100]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xd0]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x100]
mov rdx, rcx
call fcn.18006c970
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xd0]
mov rdx, rcx
call fcn.18006c970
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0xe8]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0xe8]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x100]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0xd0]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x118]
lea r8, [rsp + 0xa0]
mov edx, 3
call fcn.180076550
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x100]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xb8]
lea r8, [rsp + 0xa0]
mov edx, 3
call fcn.180076550
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0xd0]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xe8]
mov edx, 3
mov r8, rcx
call fcn.18006a500
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xe8]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xd0]
lea rcx, [rsp + 0xe8]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x100]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0xd0]
mov r8, rcx
call fcn.180068aa0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x100]
mov rdx, rcx
xor r8d, r8d
call fcn.18007cbf0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xd0]
mov rdx, rcx
xor r8d, r8d
call fcn.18007cbf0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x100]
mov edx, r14d
call fcn.180078070
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xe8]
mov edx, edi
call fcn.180078070
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea edx, [r14 + r14*2]
lea rcx, [rsp + 0xd0]
call fcn.180078070
mov r15d, eax
test eax, eax
jne 0x18006ae9d
shl r14d, 2
lea rcx, [rsp + 0xb8]
mov edx, r14d
call fcn.180078070
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0x118]
lea rdx, [rsp + 0x100]
mov r8, rsi
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xe8]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0xa0]
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xb8]
lea rdx, [rsp + 0xa0]
mov r8, rdx
call fcn.1800688d0
mov r15d, eax
test eax, eax
jne 0x18006ae9d
lea rcx, [rsp + 0xa0]
mov rdx, rsi
mov r8, rsi
call fcn.1800688d0
mov r15d, eax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x48], 0
lea rcx, [rsp + 0x118]
lea rdx, [rsp + 0x100]
lea r8, [rsp + 0xe8]
lea r9, [rsp + 0xd0]
call fcn.180078380
jmp 0x18006bc48
mov r8, qword [rdi + 0x10]
xor ecx, ecx
mov edx, dword [r8]
add r8, 4
mov dword [rax], edx
add rax, 4
inc ecx
mov edx, dword [rdi]
cmp ecx, edx
jl 0x18006af07
jmp 0x18006a8fe
cmp ecx, r9d
jge 0x18006af3f
mov dword [rax], 0
add rax, 4
inc ecx
mov r8d, dword [rsp + 0x58]
cmp ecx, r8d
jl 0x18006af26
sub r8d, edi
mov dword [rsp + 0x58], r8d
jmp 0x18006a961
mov rax, qword [rsp + 0x68]
mov ecx, edi
lea rdx, [rax + rcx*4]
xor ecx, ecx
mov r8d, dword [rdx]
add rdx, 4
mov dword [rax], r8d
add rax, 4
inc ecx
mov r9d, dword [rsp + 0x58]
mov r8d, r9d
sub r8d, edi
cmp ecx, r8d
jl 0x18006af56
jmp 0x18006af21
cmp ebx, 0x78
jl 0x18006b9ed
mov ebp, ebx
shr ebp, 1
mov r15d, ebp
and r15d, 0xffffffe0
lea r14, [r15*4 + 0x100]
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapAlloc
mov qword [rsp + 0x1b8], rax
test rax, rax
jne 0x18006afbe
mov r15d, 0xc
jmp 0x18006bc48
add r15, 0x40
mov dword [rsp + 0x1a8], 0
mov dword [rsp + 0x1ac], r15d
mov dword [rsp + 0x1b0], 0
xor eax, eax
mov rcx, qword [rsp + 0x1b8]
lea rdx, [rax*4]
mov dword [rcx + rax*4], 0
mov rcx, qword [rsp + 0x1b8]
mov r8, rdx
or r8, 4
mov dword [rcx + r8], 0
mov rcx, qword [rsp + 0x1b8]
mov r8, rdx
or r8, 8
mov dword [rcx + r8], 0
mov rcx, qword [rsp + 0x1b8]
or rdx, 0xc
mov dword [rcx + rdx], 0
add rax, 4
cmp rax, r15
jne 0x18006afe2
mov eax, dword [rdi]
mov ecx, ebp
neg ecx
lea r15d, [rax + rcx]
add r15d, 0x1f
sub eax, ebp
test eax, eax
cmovns r15d, eax
and r15d, 0xffffffe0
add r15d, 0x40
movsxd r14, r15d
shl r14, 2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapAlloc
mov qword [rsp + 0x1a0], rax
test rax, rax
jne 0x18006b092
mov r15d, 0xc
jmp 0x18006b996
mov dword [rsp + 0x190], 0
mov dword [rsp + 0x194], r15d
mov dword [rsp + 0x198], 0
test r15d, r15d
jle 0x18006b155
mov eax, r15d
mov ecx, eax
and ecx, 3
cmp r15d, 4
jae 0x18006b0cb
xor eax, eax
jmp 0x18006b133
and eax, 0xfffffffc
xor edx, edx
mov r8, qword [rsp + 0x1a0]
lea r9, [rdx*4]
mov dword [r8 + rdx*4], 0
mov r8, qword [rsp + 0x1a0]
mov r10, r9
or r10, 4
mov dword [r8 + r10], 0
mov r8, qword [rsp + 0x1a0]
mov r10, r9
or r10, 8
mov dword [r8 + r10], 0
mov r8, qword [rsp + 0x1a0]
or r9, 0xc
mov dword [r8 + r9], 0
add rdx, 4
cmp rdx, rax
jne 0x18006b0d0
test rcx, rcx
je 0x18006b155
xor edx, edx
mov r8, qword [rsp + 0x1a0]
mov dword [r8 + rax*4], 0
inc rax
inc rdx
cmp rdx, rcx
jne 0x18006b13a
mov eax, dword [rdi]
lea r15d, [rax*2 + 0x1f]
add eax, eax
cmovns r15d, eax
and r15d, 0xffffffe0
add r15d, 0x40
movsxd r14, r15d
shl r14, 2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapAlloc
mov qword [rsp + 0x188], rax
test rax, rax
jne 0x18006b19e
mov r15d, 0xc
jmp 0x18006b91c
mov dword [rsp + 0x178], 0
mov dword [rsp + 0x17c], r15d
mov dword [rsp + 0x180], 0
test r15d, r15d
jle 0x18006b261
mov eax, r15d
mov ecx, eax
and ecx, 2
cmp r15d, 4
jae 0x18006b1d7
xor eax, eax
jmp 0x18006b23f
and eax, 0xfffffffc
xor edx, edx
mov r8, qword [rsp + 0x188]
lea r9, [rdx*4]
mov dword [r8 + rdx*4], 0
mov r8, qword [rsp + 0x188]
mov r10, r9
or r10, 4
mov dword [r8 + r10], 0
mov r8, qword [rsp + 0x188]
mov r10, r9
or r10, 8
mov dword [r8 + r10], 0
mov r8, qword [rsp + 0x188]
or r9, 0xc
mov dword [r8 + r9], 0
add rdx, 4
cmp rdx, rax
jne 0x18006b1dc
test rcx, rcx
je 0x18006b261
xor edx, edx
mov r8, qword [rsp + 0x188]
mov dword [r8 + rax*4], 0
inc rax
inc rdx
cmp rdx, rcx
jne 0x18006b246
mov eax, dword [rdi]
lea r15d, [rax*2 + 0x1f]
add eax, eax
cmovns r15d, eax
and r15d, 0xffffffe0
add r15d, 0x40
movsxd r14, r15d
shl r14, 2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapAlloc
mov qword [rsp + 0x170], rax
test rax, rax
jne 0x18006b2aa
mov r15d, 0xc
jmp 0x18006b8a2
mov r14, rax
mov dword [rsp + 0x160], 0
mov dword [rsp + 0x164], r15d
mov dword [rsp + 0x168], 0
test r15d, r15d
jle 0x18006b3f2
mov edx, r15d
mov eax, edx
and eax, 2
cmp r15d, 4
jae 0x18006b2e9
xor ecx, ecx
jmp 0x18006b3d8
mov ecx, edx
and ecx, 0xfffffffc
add rdx, 0xfffffffffffffffc
mov r8, rdx
shr r8, 2
inc r8
cmp rdx, 4
jae 0x18006b309
xor edx, edx
jmp 0x18006b39c
mov r9, r8
and r9, 0xfffffffffffffffe
xor edx, edx
xor r10d, r10d
lea r11, [rdx*4]
mov dword [r14 + rdx*4], 0
mov r15, r11
or r15, 4
mov dword [r14 + r15], 0
mov r15, r11
or r15, 8
mov dword [r14 + r15], 0
mov r15, r11
or r15, 0xc
mov dword [r14 + r15], 0
mov r15, r11
or r15, 0x10
mov dword [r14 + r15], 0
mov r15, r11
or r15, 0x14
mov dword [r14 + r15], 0
mov r15, r11
or r15, 0x18
mov dword [r14 + r15], 0
or r11, 0x1c
mov dword [r14 + r11], 0
add rdx, 8
add r10, 2
cmp r10, r9
jne 0x18006b315
test r8b, 1
je 0x18006b3d8
mov dword [r14 + rdx*4], 0
shl rdx, 2
mov r8, rdx
or r8, 4
mov dword [r14 + r8], 0
mov r8, rdx
or r8, 8
mov dword [r14 + r8], 0
or rdx, 0xc
mov dword [r14 + rdx], 0
test rax, rax
je 0x18006b3f2
xor edx, edx
mov dword [r14 + rcx*4], 0
inc rcx
inc rdx
cmp rdx, rax
jne 0x18006b3df
and ebx, 0xfffffffe
lea r12d, [rbx + 0x1f]
test ebx, ebx
cmovns r12d, ebx
and r12d, 0xffffffe0
add r12d, 0x40
movsxd r15, r12d
shl r15, 2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapAlloc
mov qword [rsp + 0x158], rax
test rax, rax
jne 0x18006b438
mov r15d, 0xc
jmp 0x18006b84a
mov dword [rsp + 0x148], 0
mov dword [rsp + 0x14c], r12d
mov dword [rsp + 0x150], 0
test r12d, r12d
jle 0x18006b581
mov r8d, r12d
mov ecx, r8d
and ecx, 2
cmp r12d, 4
jae 0x18006b475
xor edx, edx
jmp 0x18006b567
mov edx, r8d
and edx, 0xfffffffc
add r8, 0xfffffffffffffffc
mov r9, r8
shr r9, 2
inc r9
cmp r8, 4
jae 0x18006b497
xor r8d, r8d
jmp 0x18006b52b
mov r10, r9
and r10, 0xfffffffffffffffe
xor r8d, r8d
xor r11d, r11d
lea r15, [r8*4]
mov dword [rax + r8*4], 0
mov r12, r15
or r12, 4
mov dword [rax + r12], 0
mov r12, r15
or r12, 8
mov dword [rax + r12], 0
mov r12, r15
or r12, 0xc
mov dword [rax + r12], 0
mov r12, r15
or r12, 0x10
mov dword [rax + r12], 0
mov r12, r15
or r12, 0x14
mov dword [rax + r12], 0
mov r12, r15
or r12, 0x18
mov dword [rax + r12], 0
or r15, 0x1c
mov dword [rax + r15], 0
add r8, 8
add r11, 2
cmp r11, r10
jne 0x18006b4a4
test r9b, 1
je 0x18006b567
mov dword [rax + r8*4], 0
shl r8, 2
mov r9, r8
or r9, 4
mov dword [rax + r9], 0
mov r9, r8
or r9, 8
mov dword [rax + r9], 0
or r8, 0xc
mov dword [rax + r8], 0
test rcx, rcx
je 0x18006b581
xor r8d, r8d
mov dword [rax + rdx*4], 0
inc rdx
inc r8
cmp r8, rcx
jne 0x18006b56f
mov edx, dword [rdi]
sub edx, ebp
add edx, edx
lea rcx, [rsp + 0x130]
call fcn.180077f70
mov r15d, 0xc
test eax, eax
jne 0x18006b838
mov rax, qword [rdi + 0x10]
mov rcx, qword [rsp + 0x1b8]
cmp ebp, 2
mov edx, 1
cmovge edx, ebp
mov r8, rcx
sub r8, rax
xor r9d, r9d
cmp r8, 0x20
jae 0x18006b5cd
xor r8d, r8d
jmp 0x18006b60d
mov r8d, edx
and r8d, 0xfffffff8
lea r10, [r8*4]
xor r11d, r11d
movups xmm0, xmmword [rax + r11*4]
movups xmm1, xmmword [rax + r11*4 + 0x10]
movups xmmword [rcx + r11*4], xmm0
movups xmmword [rcx + r11*4 + 0x10], xmm1
add r11, 8
cmp r11, r8
jne 0x18006b5df
add rax, r10
cmp r8, rdx
je 0x18006b690
add rcx, r10
mov r11d, edx
sub r11d, r8d
mov r10d, r8d
not r10d
add r10d, edx
and r11d, 7
je 0x18006b63b
mov r14d, dword [rax]
add rax, 4
mov dword [rcx], r14d
add rcx, 4
inc r9d
cmp r9d, r11d
jne 0x18006b622
add r8d, r11d
cmp r10d, 7
jb 0x18006b690
mov r9d, dword [rax]
mov dword [rcx], r9d
mov r9d, dword [rax + 4]
mov dword [rcx + 4], r9d
mov r9d, dword [rax + 8]
mov dword [rcx + 8], r9d
mov r9d, dword [rax + 0xc]
mov dword [rcx + 0xc], r9d
mov r9d, dword [rax + 0x10]
mov dword [rcx + 0x10], r9d
mov r9d, dword [rax + 0x14]
mov dword [rcx + 0x14], r9d
mov r9d, dword [rax + 0x18]
mov dword [rcx + 0x18], r9d
mov r9d, dword [rax + 0x1c]
add rax, 0x20
mov dword [rcx + 0x1c], r9d
add rcx, 0x20
add r8d, 8
cmp r8d, edx
jne 0x18006b641
mov r8d, dword [rdi]
cmp ebp, r8d
jge 0x18006b6ba
mov rcx, qword [rsp + 0x1a0]
mov edx, ebp
mov r8d, dword [rax]
add rax, 4
mov dword [rcx], r8d
add rcx, 4
inc edx
mov r8d, dword [rdi]
cmp edx, r8d
jl 0x18006b6a2
mov dword [rsp + 0x1a8], ebp
sub r8d, ebp
mov dword [rsp + 0x190], r8d
mov rax, qword [rsp + 0x1b8]
mov ecx, ebp
lea rdx, [rcx - 1]
mov r8d, edx
cmp dword [rax + r8*4], 0
jne 0x18006b6ff
mov dword [rsp + 0x1a8], edx
cmp rcx, 1
mov rcx, rdx
ja 0x18006b6d6
mov dword [rsp + 0x1b0], 0
lea rcx, [rsp + 0x1a8]
lea rdx, [rsp + 0x148]
call fcn.18006a5e0
mov r15d, 0xc
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x190]
lea rdx, [rsp + 0x130]
call fcn.18006a5e0
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x190]
lea rdx, [rsp + 0x1a8]
lea r8, [rsp + 0x178]
call fcn.1800772d0
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x178]
mov rdx, rcx
call fcn.18006a5e0
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x148]
lea rdx, [rsp + 0x130]
lea r8, [rsp + 0x160]
call fcn.1800772d0
test eax, eax
jne 0x18006b823
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x178]
mov r8, rcx
call fcn.1800774b0
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x178]
mov edx, ebp
call fcn.180078070
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x130]
mov edx, ebx
call fcn.180078070
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x148]
lea rdx, [rsp + 0x178]
mov r8, rdx
call fcn.1800688d0
test eax, eax
jne 0x18006b823
lea rcx, [rsp + 0x178]
lea rdx, [rsp + 0x130]
mov r8, rsi
call fcn.1800688d0
test eax, eax
mov r15d, 0xc
cmove r15d, eax
lea rcx, [rsp + 0x130]
call fcn.180068700
mov r14, qword [rsp + 0x170]
lea rcx, [rsp + 0x148]
call fcn.180068700
test r14, r14
je 0x18006b8a2
movsxd rax, dword [rsp + 0x160]
test rax, rax
jle 0x18006b890
cmp eax, 8
jae 0x18006b86b
xor ecx, ecx
mov dword [r14 + rcx*4], 0
inc rcx
jmp 0x18006b88b
mov rcx, rax
and rcx, 0xfffffffffffffff8
xor edx, edx
xorps xmm0, xmm0
movups xmmword [r14 + rdx*4], xmm0
movups xmmword [r14 + rdx*4 + 0x10], xmm0
add rdx, 8
cmp rdx, rcx
jne 0x18006b877
cmp rcx, rax
jne 0x18006b85e
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rdi, qword [rsp + 0x188]
test rdi, rdi
je 0x18006b91c
cmp dword [rsp + 0x178], 0
jle 0x18006b8e7
xor eax, eax
mov rcx, qword [rsp + 0x188]
mov dword [rcx + rax*4], 0
inc rax
movsxd rcx, dword [rsp + 0x178]
cmp rax, rcx
jl 0x18006b8bb
mov rdi, qword [rsp + 0x188]
test rdi, rdi
je 0x18006b8f9
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x178], 0
mov dword [rsp + 0x180], 0
mov rdi, qword [rsp + 0x1a0]
test rdi, rdi
je 0x18006b996
cmp dword [rsp + 0x190], 0
jle 0x18006b961
xor eax, eax
mov rcx, qword [rsp + 0x1a0]
mov dword [rcx + rax*4], 0
inc rax
movsxd rcx, dword [rsp + 0x190]
cmp rax, rcx
jl 0x18006b935
mov rdi, qword [rsp + 0x1a0]
test rdi, rdi
je 0x18006b973
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov qword [rsp + 0x1a0], 0
mov qword [rsp + 0x190], 0
mov dword [rsp + 0x198], 0
mov rdi, qword [rsp + 0x1b8]
test rdi, rdi
je 0x18006bc48
cmp dword [rsp + 0x1a8], 0
jle 0x18006b9e3
xor eax, eax
mov rcx, qword [rsp + 0x1b8]
mov dword [rcx + rax*4], 0
inc rax
movsxd rcx, dword [rsp + 0x1a8]
cmp rax, rcx
jl 0x18006b9b3
mov rdi, qword [rsp + 0x1b8]
test rdi, rdi
je 0x18006bc48
call sub.KERNEL32.dll_GetProcessHeap
jmp 0x18006bc3b
lea r15d, [rbx*2 + 1]
cmp r15d, 0x1ff
jg 0x18006ba11
mov rcx, rdi
mov rdx, rsi
call fcn.180077c80
mov r15d, eax
jmp 0x18006bc48
lea r12d, [rbx + rbx]
and r12d, 0xffffffe0
lea ebp, [r12 + 0x40]
movsxd r14, ebp
shl r14, 2
call sub.KERNEL32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
jne 0x18006ba47
mov r15d, 0xc
jmp 0x18006bc48
test ebp, ebp
jle 0x18006bae4
add r12d, 0x3c
shr r12d, 2
inc r12d
xor ecx, ecx
xor edx, edx
lea r8, [rcx*4]
mov dword [rax + rcx*4], 0
mov r9, r8
or r9, 4
mov dword [rax + r9], 0
mov r9, r8
or r9, 8
mov dword [rax + r9], 0
mov r9, r8
or r9, 0xc
mov dword [rax + r9], 0
mov r9, r8
or r9, 0x10
mov dword [rax + r9], 0
mov r9, r8
or r9, 0x14
mov dword [rax + r9], 0
mov r9, r8
or r9, 0x18
mov dword [rax + r9], 0
or r8, 0x1c
mov dword [rax + r8], 0
add rcx, 8
add rdx, 2
cmp rdx, r12
jne 0x18006ba5e
test ebx, ebx
jle 0x18006bbb8
mov ecx, 1
xor r8d, r8d
mov edx, 0xffffffff
jmp 0x18006bb07
inc rcx
cmp r8, rbx
je 0x18006bbb8
mov r11, r8
mov r8d, dword [rax + r8*8]
mov r9, qword [rdi + 0x10]
mov r9d, dword [r9 + r11*4]
imul r9, r9
add r9, r8
mov r8d, r9d
and r8d, 0xfffffff
mov dword [rax + r11*8], r8d
lea r10, [rax + r11*8]
add r10, 4
lea r8, [r11 + 1]
shr r9, 0x1c
cmp r8, rbx
jae 0x18006bb83
mov r14, qword [rdi + 0x10]
mov r11d, dword [r14 + r11*4]
add r11, r11
mov r14, rcx
mov r12, qword [rdi + 0x10]
mov r12d, dword [r12 + r14*4]
imul r12, r11
mov r13d, dword [r10]
mov r9d, r9d
add r9, r13
add r9, r12
mov r12d, r9d
and r12d, 0xfffffff
mov dword [r10], r12d
add r10, 4
inc r14
shr r9, 0x1c
cmp r14, rbx
jne 0x18006bb4e
and r9, rdx
je 0x18006bafb
mov r11d, dword [r10]
add r11, r9
mov r9d, r11d
and r9d, 0xfffffff
mov dword [r10], r9d
add r10, 4
mov r9, r11
shr r9, 0x1c
cmp r11, 0x10000000
jae 0x18006bb8c
jmp 0x18006bafb
test ebx, ebx
js 0x18006bbd7
mov r15d, r15d
lea rcx, [r15 - 1]
mov edx, ecx
cmp dword [rax + rdx*4], 0
jne 0x18006bbd7
cmp r15, 1
mov r15, rcx
ja 0x18006bbbf
xor r15d, r15d
mov ecx, dword [rsi]
mov rdi, qword [rsi + 0x10]
mov dword [rsi], r15d
mov dword [rsi + 4], ebp
mov dword [rsi + 8], 0
mov qword [rsi + 0x10], rax
test rdi, rdi
jne 0x18006bbf8
xor r15d, r15d
jmp 0x18006bc48
test ecx, ecx
jle 0x18006bc33
cmp ecx, 8
jae 0x18006bc0f
xor eax, eax
mov dword [rdi + rax*4], 0
inc rax
jmp 0x18006bc2e
mov eax, ecx
and eax, 0xfffffff8
xor edx, edx
xorps xmm0, xmm0
movups xmmword [rdi + rdx*4 + 0x10], xmm0
movups xmmword [rdi + rdx*4], xmm0
lea r8, [rdx + 8]
mov rdx, r8
cmp r8, rax
jne 0x18006bc19
cmp rax, rcx
jne 0x18006bc03
call sub.KERNEL32.dll_GetProcessHeap
xor r15d, r15d
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov dword [rsi + 8], 0
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.1800c5320
mov eax, r15d
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret