Function at 0x180066430
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x3d0]
sub rsp, 0x4d0
xor r12d, r12d
mov dword [rbp - 0x54], 0xff
lea rdx, [rbp - 0x70]
mov dword [rsp + 0x20], r12d
mov edi, r12d
mov rbx, rcx
call fcn.180065f90
test rax, rax
je 0x1800674d4
mov eax, dword [rbx + 4]
mov r14d, dword [rbp - 0x68]
mov r9d, dword [rbp - 0x58]
mov r13d, dword [rbp - 0x6c]
mov esi, dword [rbp - 0x70]
mov dword [rsp + 0x74], eax
cdq
mov r8d, eax
mov dword [rsp + 0x44], r9d
mov eax, dword [rbp - 0x64]
xor r8d, edx
mov dword [rsp + 0x30], eax
sub r8d, edx
mov eax, dword [rbp - 0x60]
mov dword [rbp + 0x438], eax
mov eax, dword [rbp - 0x5c]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp - 0x54]
mov dword [rsp + 0x2c], eax
mov dword [rbx + 4], r8d
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x24], r14d
mov dword [rbp + 0x430], esi
cmp r14d, 0xc
jne 0x1800664fb
cmp esi, 0x18
jge 0x180066510
lea ecx, [r13 - 0x26]
mov eax, 0x55555556
imul ecx
mov edi, edx
shr edi, 0x1f
add edi, edx
jmp 0x18006650c
cmp esi, 0x10
jge 0x180066510
mov edi, r13d
sub edi, r14d
sub edi, 0xe
sar edi, 2
mov dword [rsp + 0x20], edi
mov ecx, dword [rbx]
test r9d, r9d
mov eax, r12d
setne al
add eax, 3
mov dword [rbx + 8], eax
test ecx, ecx
js 0x1800674d4
jne 0x180066538
lea r9d, [rcx*4]
mov r10d, r9d
jmp 0x18006655d
mov eax, 0x7fffffff
cdq
idiv ecx
cmp eax, 4
jl 0x1800674d4
lea r9d, [rcx*4]
mov r10d, r9d
test r9d, r9d
js 0x1800674d4
test r8d, r8d
js 0x1800674d4
je 0x18006657a
mov eax, 0x7fffffff
cdq
idiv r8d
cmp r10d, eax
jg 0x1800674d4
test ecx, ecx
je 0x180066599
xor edx, edx
mov eax, 0x7fffffff
div ecx
cmp eax, 4
jl 0x1800674d4
test r9d, r9d
js 0x1800674d4
test r8d, r8d
je 0x1800665b1
xor edx, edx
mov eax, 0x7fffffff
div r8d
cmp r9d, eax
jg 0x1800674d4
imul r8d, ecx
shl r8d, 2
movsxd rcx, r8d
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbp - 0x80], rax
mov r15, rax
test rax, rax
je 0x1800674d4
cmp esi, 0x10
jge 0x180066ce6
mov esi, r12d
test edi, edi
je 0x1800674cb
cmp edi, 0x100
jg 0x1800674cb
movsxd rax, edi
mov qword [rbp + 0x438], rax
test edi, edi
jle 0x180066828
mov rax, qword [rbx + 0xb8]
mov r15d, dword [rsp + 0x24]
mov r13, qword [rbp + 0x438]
nop word [rax + rax]
mov rcx, qword [rbx + 0xc0]
cmp rax, rcx
jb 0x18006667f
cmp dword [rbx + 0x30], esi
je 0x1800666a3
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rbx + 0xb8], rdi
test eax, eax
jne 0x180066668
lea rax, [rbx + 0x39]
mov dword [rbx + 0x30], esi
mov qword [rbx + 0xc0], rax
mov byte [rdi], sil
mov rcx, qword [rbx + 0xc0]
jmp 0x180066678
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
mov rax, qword [rbx + 0xb8]
movzx edx, byte [rax]
lea r14, [r12*4]
inc rax
mov byte [rbp + r14 - 0x2e], dl
mov qword [rbx + 0xb8], rax
mov r8, r14
cmp rax, rcx
jae 0x1800666b3
jmp 0x180066706
lea r14, [r12*4]
mov byte [rbp + r14 - 0x2e], sil
mov r8, r14
cmp dword [rbx + 0x30], esi
je 0x18006672c
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rbx + 0xb8], rdi
test eax, eax
jne 0x1800666ef
lea rax, [rbx + 0x39]
mov dword [rbx + 0x30], esi
mov qword [rbx + 0xc0], rax
mov byte [rdi], sil
mov rcx, qword [rbx + 0xc0]
jmp 0x1800666ff
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
mov rax, qword [rbx + 0xb8]
movzx edx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
mov byte [rbp + r14 - 0x2f], dl
cmp rax, rcx
jae 0x180066731
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18006678e
mov byte [rbp + r8 - 0x2f], sil
cmp dword [rbx + 0x30], esi
je 0x18006678c
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rbx + 0xb8], rdi
test eax, eax
jne 0x180066766
lea rax, [rbx + 0x39]
mov dword [rbx + 0x30], esi
mov qword [rbx + 0xc0], rax
mov byte [rdi], sil
jmp 0x180066776
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
mov rax, qword [rbx + 0xb8]
movzx ecx, byte [rax]
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x18006678e
xor cl, cl
mov byte [rbp + r14 - 0x30], cl
cmp r15d, 0xc
je 0x180066801
cmp rax, qword [rbx + 0xc0]
jae 0x1800667ae
inc rax
mov qword [rbx + 0xb8], rax
jmp 0x180066801
cmp dword [rbx + 0x30], esi
je 0x180066801
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rbx + 0xb8], rdi
test eax, eax
jne 0x1800667e3
lea rax, [rbx + 0x39]
mov dword [rbx + 0x30], esi
mov qword [rbx + 0xc0], rax
mov byte [rdi], sil
jmp 0x1800667f3
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
inc qword [rbx + 0xb8]
mov rax, qword [rbx + 0xb8]
inc r12
mov byte [rbp + r14 - 0x2d], 0xff
cmp r12, r13
jl 0x180066620
mov r15, qword [rbp - 0x80]
xor r12d, r12d
mov r13d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x20]
mov r14d, dword [rsp + 0x24]
cmp r14d, 0xc
mov eax, r12d
setne al
add eax, 3
imul eax, edi
sub r13d, eax
sub r13d, r14d
lea r14, [rbx + 0xb8]
sub r13d, 0xe
jns 0x180066857
mov rax, qword [rbx + 0xc0]
mov qword [r14], rax
jmp 0x18006688a
cmp qword [rbx + 0x10], rsi
je 0x180066884
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [r14]
cmp ecx, r13d
jge 0x180066884
mov rax, qword [rbx + 0xc0]
sub r13d, ecx
mov rcx, qword [rbx + 0x28]
mov edx, r13d
mov qword [r14], rax
call qword [rbx + 0x18]
jmp 0x18006688a
movsxd rax, r13d
add qword [r14], rax
mov r11d, dword [rbp + 0x430]
cmp r11d, 1
jne 0x1800668a1
mov edx, dword [rbx]
add edx, 7
shr edx, 3
jmp 0x1800668bb
cmp r11d, 4
jne 0x1800668af
mov edx, dword [rbx]
inc edx
shr edx, 1
jmp 0x1800668bb
cmp r11d, 8
jne 0x1800674cb
mov edx, dword [rbx]
mov eax, dword [rbx + 4]
neg edx
and edx, 3
mov ecx, eax
mov dword [rbp + 0x438], edx
cmp r11d, 1
jne 0x180066ad2
mov dword [rbp + 0x430], r12d
test eax, eax
jle 0x180067408
mov rsi, r12
nop word [rax + rax]
mov rax, qword [r14]
mov r12d, 7
cmp rax, qword [rbx + 0xc0]
jae 0x18006690d
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
jmp 0x18006696e
cmp dword [rbx + 0x30], 0
je 0x18006696c
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [r14], rdi
test eax, eax
jne 0x18006694e
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [r14]
mov byte [rax], 0
mov rax, qword [r14]
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
jmp 0x18006696e
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov rax, qword [r14]
mov qword [rbx + 0xc0], rcx
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
jmp 0x18006696e
xor cl, cl
mov edx, dword [rbx]
xor r13d, r13d
movzx r9d, cl
test edx, edx
jle 0x180066a7e
mov r8d, edx
mov eax, r9d
mov ecx, r12d
sar eax, cl
and eax, 1
lea rcx, [rax*4]
movzx eax, byte [rbp + rcx - 0x30]
mov byte [rsi + r15], al
movzx eax, byte [rbp + rcx - 0x2f]
mov byte [rsi + r15 + 1], al
movzx eax, byte [rbp + rcx - 0x2e]
mov byte [rsi + r15 + 2], al
mov byte [rsi + r15 + 3], 0xff
add rsi, 4
inc r13d
cmp r13d, edx
je 0x180066a7e
sub r12d, 1
jns 0x180066a72
mov rax, qword [r14]
mov r12d, 7
cmp rax, qword [rbx + 0xc0]
jae 0x1800669f6
movzx ecx, byte [rax]
mov edx, r8d
inc rax
movzx r9d, cl
mov qword [r14], rax
jmp 0x180066a75
cmp dword [rbx + 0x30], 0
je 0x180066a67
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [r14], rdi
test eax, eax
jne 0x180066a40
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [r14]
mov byte [rax], 0
mov rax, qword [r14]
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
mov edx, dword [rbx]
mov r8d, edx
movzx r9d, cl
jmp 0x180066a75
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov rax, qword [r14]
mov qword [rbx + 0xc0], rcx
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
mov edx, dword [rbx]
mov r8d, edx
movzx r9d, cl
jmp 0x180066a75
xor cl, cl
mov edx, r8d
movzx r9d, cl
jmp 0x180066a75
mov r8d, dword [rbx]
cmp r13d, edx
jl 0x180066982
cmp qword [rbx + 0x10], 0
mov edx, dword [rbp + 0x438]
je 0x180066aad
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [r14]
cmp ecx, edx
jge 0x180066aad
mov rax, qword [rbx + 0xc0]
sub edx, ecx
mov rcx, qword [rbx + 0x28]
mov qword [r14], rax
call qword [rbx + 0x18]
jmp 0x180066ab2
mov eax, edx
add qword [r14], rax
mov edx, dword [rbp + 0x430]
mov eax, dword [rbx + 4]
inc edx
mov dword [rbp + 0x430], edx
mov ecx, eax
cmp edx, eax
jl 0x1800668f0
jmp 0x180067408
test eax, eax
jle 0x180067408
nop word [rax + rax]
xor r13d, r13d
cmp dword [rbx], r13d
jle 0x180066c95
nop dword [rax]
mov r8, qword [r14]
cmp r8, qword [rbx + 0xc0]
jae 0x180066b08
movzx ecx, byte [r8]
inc r8
mov qword [r14], r8
jmp 0x180066b65
cmp dword [rbx + 0x30], 0
je 0x180066b63
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [r14], rdi
test eax, eax
jne 0x180066b3d
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [r14]
mov byte [rax], 0
jmp 0x180066b4d
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
mov rax, qword [r14]
mov r11d, dword [rbp + 0x430]
movzx ecx, byte [rax]
lea r8, [rax + 1]
mov qword [r14], r8
jmp 0x180066b65
xor cl, cl
xor r10d, r10d
movzx eax, cl
cmp r11d, 4
jne 0x180066b7b
mov r10d, eax
and r10d, 0xf
shr eax, 4
mov r9d, dword [rbx]
lea rdx, [rax*4]
movzx eax, byte [rbp + rdx - 0x30]
movsxd rcx, esi
inc esi
mov byte [rcx + r15], al
movzx eax, byte [rbp + rdx - 0x2f]
movsxd rcx, esi
inc esi
mov byte [rcx + r15], al
movzx eax, byte [rbp + rdx - 0x2e]
movsxd rcx, esi
inc esi
mov byte [rcx + r15], al
movsxd rax, esi
inc esi
mov byte [rax + r15], 0xff
lea eax, [r13 + 1]
cmp eax, r9d
je 0x180066c8f
cmp r11d, 8
jne 0x180066c46
cmp r8, qword [rbx + 0xc0]
jae 0x180066be3
movzx ecx, byte [r8]
lea rax, [r8 + 1]
mov qword [r14], rax
jmp 0x180066c42
cmp dword [rbx + 0x30], 0
je 0x180066c40
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [r14], rdi
test eax, eax
jne 0x180066c18
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [r14]
mov byte [rax], 0
jmp 0x180066c28
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov qword [rbx + 0xc0], rcx
mov rax, qword [r14]
mov r11d, dword [rbp + 0x430]
movzx ecx, byte [rax]
inc rax
mov qword [r14], rax
mov r9d, dword [rbx]
jmp 0x180066c42
xor cl, cl
movzx r10d, cl
movsxd rcx, esi
lea rdx, [r10*4]
movzx eax, byte [rbp + rdx - 0x30]
inc esi
add r13d, 2
mov byte [rcx + r15], al
movzx eax, byte [rbp + rdx - 0x2f]
movsxd rcx, esi
inc esi
mov byte [rcx + r15], al
movzx eax, byte [rbp + rdx - 0x2e]
movsxd rcx, esi
inc esi
mov byte [rcx + r15], al
movsxd rax, esi
inc esi
mov byte [rax + r15], 0xff
cmp r13d, r9d
jl 0x180066af0
mov edx, dword [rbp + 0x438]
cmp qword [rbx + 0x10], 0
je 0x180066cc4
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [r14]
cmp ecx, edx
jge 0x180066cc4
mov rax, qword [rbx + 0xc0]
sub edx, ecx
mov rcx, qword [rbx + 0x28]
mov qword [r14], rax
call qword [rbx + 0x18]
mov edx, dword [rbp + 0x438]
jmp 0x180066cc9
mov eax, edx
add qword [r14], rax
mov eax, dword [rbx + 4]
inc r12d
mov r11d, dword [rbp + 0x430]
mov ecx, eax
cmp r12d, eax
jl 0x180066ae0
jmp 0x180067408
xor r9d, r9d
mov dword [rsp + 0x34], r12d
xor edx, edx
mov dword [rsp + 0x3c], r12d
sub r13d, r14d
mov dword [rsp + 0x40], r12d
sub r13d, 0xe
mov dword [rsp + 0x24], r12d
mov r10d, r12d
lea rsi, [rbx + 0xb8]
mov edi, r12d
jns 0x180066d21
mov rax, qword [rbx + 0xc0]
mov qword [rsi], rax
jmp 0x180066d61
cmp qword [rbx + 0x10], rdx
je 0x180066d5b
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rsi]
mov qword [rsp + 0x78], rsi
cmp ecx, r13d
jge 0x180066d5b
mov rax, qword [rbx + 0xc0]
sub r13d, ecx
mov rcx, qword [rbx + 0x28]
mov edx, r13d
mov qword [rsi], rax
call qword [rbx + 0x18]
mov r9d, r12d
mov edx, r12d
mov r10d, r12d
jmp 0x180066d66
movsxd rax, r13d
add qword [rsi], rax
mov qword [rsp + 0x78], rsi
mov ecx, dword [rbp + 0x430]
cmp ecx, 0x18
jne 0x180066d79
mov eax, dword [rbx]
lea r14d, [rax + rax*2]
jmp 0x180066d89
cmp ecx, 0x10
jne 0x180066d86
mov r14d, dword [rbx]
add r14d, r14d
jmp 0x180066d89
xor r14d, r14d
neg r14d
and r14d, 3
mov dword [rsp + 0x28], r14d
cmp ecx, 0x18
jne 0x180066da6
lea r8d, [rcx - 0x17]
mov r13d, r12d
jmp 0x180066f81
mov eax, dword [rbp + 0x438]
cmp ecx, 0x20
mov ecx, dword [rsp + 0x38]
jne 0x180066dea
cmp ecx, 0xff
jne 0x180066dea
cmp eax, 0xff00
jne 0x180066dea
cmp dword [rsp + 0x30], 0xff0000
jne 0x180066dea
mov r11d, dword [rsp + 0x44]
cmp r11d, 0xff000000
jne 0x180066e0f
mov r8d, 2
mov r13d, r12d
jmp 0x180066f81
mov r9d, dword [rsp + 0x30]
test r9d, r9d
je 0x1800674cb
test eax, eax
je 0x1800674cb
test ecx, ecx
je 0x1800674cb
mov r11d, dword [rsp + 0x44]
jmp 0x180066e14
mov r9d, dword [rsp + 0x30]
mov ecx, r9d
call fcn.180065f20
mov edx, r9d
mov ecx, r9d
mov r9d, dword [rbp + 0x438]
and ecx, 0x55555555
shr edx, 1
and edx, 0x55555555
lea r13d, [rax - 7]
add edx, ecx
mov dword [rsp + 0x34], r13d
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r9d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx edi, al
call fcn.180065f20
sub eax, 7
mov edx, r9d
shr edx, 1
mov ecx, r9d
mov r9d, dword [rsp + 0x38]
and edx, 0x55555555
and ecx, 0x55555555
mov dword [rsp + 0x3c], eax
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r9d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r12d, al
call fcn.180065f20
sub eax, 7
mov edx, r9d
shr edx, 1
mov ecx, r9d
and edx, 0x55555555
mov dword [rsp + 0x40], eax
and ecx, 0x55555555
add edx, ecx
mov ecx, edx
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
mov ecx, r11d
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx r9d, al
call fcn.180065f20
mov edx, r11d
mov ecx, r11d
shr edx, 1
and ecx, 0x55555555
and edx, 0x55555555
add edx, ecx
lea r10d, [rax - 7]
mov ecx, edx
mov dword [rsp + 0x24], r10d
and edx, 0x33333333
shr ecx, 2
and ecx, 0x33333333
add ecx, edx
mov edx, ecx
shr edx, 4
add edx, ecx
and edx, 0xf0f0f0f
mov eax, edx
shr eax, 8
add edx, eax
mov eax, edx
shr eax, 0x10
add eax, edx
movzx edx, al
xor r8d, r8d
mov eax, dword [rbx + 4]
xor r11d, r11d
mov qword [rsp + 0x48], r8
mov ecx, eax
mov dword [rsp + 0x20], r11d
test eax, eax
jle 0x180067408
mov eax, 8
neg r13d
mov ecx, eax
mov dword [rsp + 0x58], r13d
sub ecx, edi
mov r13d, r11d
mov dword [rsp + 0x5c], ecx
mov ecx, dword [rsp + 0x3c]
neg ecx
mov dword [rsp + 0x60], ecx
mov ecx, eax
sub ecx, r12d
mov dword [rsp + 0x64], ecx
mov ecx, dword [rsp + 0x40]
neg ecx
mov dword [rsp + 0x68], ecx
mov ecx, eax
sub ecx, r9d
mov dword [rsp + 0x6c], ecx
mov ecx, r10d
neg ecx
sub eax, edx
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x54], eax
mov eax, edi
mov qword [rbp - 0x50], rax
mov eax, r9d
mov ecx, r12d
mov edi, edx
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x78], rdi
mov eax, dword [rbx]
xor r12d, r12d
movsxd rdx, r13d
test r8, r8
je 0x180067228
test eax, eax
jle 0x1800673b2
mov rcx, qword [rsi]
lea r14, [r15 + rdx]
mov rdx, qword [rbx + 0xc0]
cmp rcx, rdx
jae 0x180067037
movzx r8d, byte [rcx]
inc rcx
jmp 0x18006708e
cmp dword [rbx + 0x30], 0
je 0x1800670a3
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rsi], rdi
test eax, eax
jne 0x180067073
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [rsi]
mov byte [rax], 0
mov rdx, qword [rbx + 0xc0]
jmp 0x180067083
cdqe
lea rdx, [rbx + 0x38]
add rdx, rax
mov qword [rbx + 0xc0], rdx
mov rax, qword [rsi]
movzx r8d, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
mov byte [r14 + 2], r8b
cmp rcx, rdx
jae 0x1800670a8
movzx r8d, byte [rcx]
inc rcx
jmp 0x1800670ff
mov byte [r14 + 2], 0
cmp dword [rbx + 0x30], 0
je 0x180067116
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rsi], rdi
test eax, eax
jne 0x1800670e4
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [rsi]
mov byte [rax], 0
mov rdx, qword [rbx + 0xc0]
jmp 0x1800670f4
cdqe
lea rdx, [rbx + 0x38]
add rdx, rax
mov qword [rbx + 0xc0], rdx
mov rax, qword [rsi]
movzx r8d, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
mov byte [r14 + 1], r8b
cmp rcx, rdx
jae 0x18006711b
movzx edx, byte [rcx]
inc rcx
mov qword [rsi], rcx
jmp 0x18006717e
mov byte [r14 + 1], 0
cmp dword [rbx + 0x30], 0
je 0x18006717c
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rsi], rdi
test eax, eax
jne 0x18006715d
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [rsi]
mov byte [rax], 0
mov rax, qword [rsi]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
jmp 0x18006717e
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov rax, qword [rsi]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
jmp 0x18006717e
xor dl, dl
cmp qword [rsp + 0x48], 2
mov byte [r14], dl
jne 0x180067202
cmp rcx, qword [rbx + 0xc0]
jae 0x18006719d
movzx edx, byte [rcx]
inc rcx
mov qword [rsi], rcx
jmp 0x180067204
cmp dword [rbx + 0x30], 0
je 0x1800671fe
mov r8d, dword [rbx + 0x34]
lea rdi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
call qword [rbx + 0x10]
mov qword [rsi], rdi
test eax, eax
jne 0x1800671df
mov dword [rbx + 0x30], eax
lea rax, [rbx + 0x39]
mov qword [rbx + 0xc0], rax
mov rax, qword [rsi]
mov byte [rax], 0
mov rax, qword [rsi]
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
jmp 0x180067204
cdqe
lea rcx, [rbx + 0x38]
add rcx, rax
mov rax, qword [rsi]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rax]
lea rcx, [rax + 1]
mov qword [rsi], rcx
jmp 0x180067204
xor dl, dl
jmp 0x180067204
mov dl, 0xff
movzx eax, dl
add r13d, 4
or dword [rsp + 0x2c], eax
inc r12d
mov byte [r14 + 3], dl
add r14, 4
cmp r12d, dword [rbx]
jl 0x180067022
jmp 0x1800673a8
test eax, eax
jle 0x1800673b2
mov esi, dword [rsp + 0x54]
lea r14, [r15 + rdx]
mov r15d, dword [rbp + 0x430]
nop
mov rcx, rbx
call fcn.18005ce80
cmp r15d, 0x10
jne 0x180067253
mov r8d, eax
jmp 0x18006726b
mov rcx, rbx
mov edi, eax
call fcn.18005ce80
mov r8d, eax
shl r8d, 0x10
add r8d, edi
mov rdi, qword [rbp - 0x78]
mov r9d, dword [rsp + 0x34]
lea r11, [0x180000000]
mov r10, qword [rbp - 0x50]
mov ecx, r9d
mov edx, r8d
and edx, dword [rsp + 0x30]
mov eax, edx
shr eax, cl
mov ecx, dword [rsp + 0x58]
shl edx, cl
mov ecx, dword [rsp + 0x5c]
test r9d, r9d
mov r9d, dword [rsp + 0x3c]
cmovns edx, eax
shr edx, cl
imul edx, dword [r11 + r10*4 + 0x7f510]
mov ecx, dword [r11 + r10*4 + 0x7f568]
mov r10, qword [rbp - 0x48]
sar edx, cl
mov ecx, r9d
mov byte [r14], dl
mov edx, r8d
and edx, dword [rbp + 0x438]
mov eax, edx
shr eax, cl
mov ecx, dword [rsp + 0x60]
shl edx, cl
mov ecx, dword [rsp + 0x64]
test r9d, r9d
mov r9d, dword [rsp + 0x40]
cmovns edx, eax
shr edx, cl
imul edx, dword [r11 + r10*4 + 0x7f510]
mov ecx, dword [r11 + r10*4 + 0x7f568]
sar edx, cl
mov ecx, r9d
mov byte [r14 + 1], dl
mov edx, r8d
and edx, dword [rsp + 0x38]
mov eax, edx
shr eax, cl
mov ecx, dword [rsp + 0x68]
shl edx, cl
mov ecx, dword [rsp + 0x6c]
test r9d, r9d
mov r9, qword [rbp - 0x40]
cmovns edx, eax
shr edx, cl
imul edx, dword [r11 + r9*4 + 0x7f510]
mov ecx, dword [r11 + r9*4 + 0x7f568]
mov r11d, dword [rsp + 0x44]
sar edx, cl
mov byte [r14 + 2], dl
test r11d, r11d
je 0x18006737c
mov r10d, dword [rsp + 0x24]
and r8d, r11d
mov eax, r8d
mov ecx, r10d
shr eax, cl
mov ecx, dword [rsp + 0x70]
shl r8d, cl
mov ecx, esi
test r10d, r10d
cmovns r8d, eax
lea rax, [0x180000000]
shr r8d, cl
imul r8d, dword [rax + rdi*4 + 0x7f510]
mov ecx, dword [rax + rdi*4 + 0x7f568]
sar r8d, cl
jmp 0x180067382
mov r8d, 0xff
or dword [rsp + 0x2c], r8d
add r13d, 4
mov byte [r14 + 3], r8b
inc r12d
add r14, 4
cmp r12d, dword [rbx]
jl 0x180067240
mov rsi, qword [rsp + 0x78]
mov r15, qword [rbp - 0x80]
mov r11d, dword [rsp + 0x20]
mov r14d, dword [rsp + 0x28]
cmp qword [rbx + 0x10], 0
je 0x1800673e3
mov ecx, dword [rbx + 0xc0]
sub ecx, dword [rsi]
cmp ecx, r14d
jge 0x1800673e3
mov rax, qword [rbx + 0xc0]
mov edx, r14d
sub edx, ecx
mov qword [rsi], rax
mov rcx, qword [rbx + 0x28]
call qword [rbx + 0x18]
mov r11d, dword [rsp + 0x20]
jmp 0x1800673e9
mov eax, r14d
add qword [rsi], rax
mov eax, dword [rbx + 4]
inc r11d
mov r8, qword [rsp + 0x48]
mov ecx, eax
mov rdi, qword [rbp - 0x78]
mov dword [rsp + 0x20], r11d
cmp r11d, eax
jl 0x180067002
cmp dword [rsp + 0x2c], 0
jne 0x18006742e
imul eax, dword [rbx]
lea eax, [rax*4 - 1]
movsxd rdx, eax
test eax, eax
js 0x18006742e
mov byte [rdx + r15], 0xff
sub rdx, 4
jns 0x180067420
mov ecx, dword [rbx + 4]
cmp dword [rsp + 0x74], 0
jle 0x1800674a1
xor r10d, r10d
mov edx, ecx
test ecx, 0xfffffffe
jle 0x1800674a1
mov ecx, dword [rbx]
sub edx, r10d
dec edx
mov r9d, ecx
imul edx, ecx
xor r8d, r8d
imul r9d, r10d
lea eax, [rcx*4]
shl edx, 2
mov r11d, edx
add rdx, r15
shl r9d, 2
test eax, eax
jle 0x180067490
sub r9, r11
movzx eax, byte [rdx]
inc r8d
movzx ecx, byte [rdx + r9]
mov byte [rdx + r9], al
mov byte [rdx], cl
lea rdx, [rdx + 1]
mov eax, dword [rbx]
shl eax, 2
cmp r8d, eax
jl 0x180067471
mov ecx, dword [rbx + 4]
inc r10d
mov eax, ecx
mov edx, ecx
sar eax, 1
cmp r10d, eax
jl 0x180067442
mov eax, dword [rbx]
mov rdx, qword [rbp + 0x418]
mov dword [rdx], eax
mov rax, qword [rbp + 0x420]
mov dword [rax], ecx
mov rcx, qword [rbp + 0x428]
test rcx, rcx
je 0x1800674c6
mov eax, dword [rbx + 8]
mov dword [rcx], eax
mov rax, r15
jmp 0x1800674d6
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor eax, eax
mov rbx, qword [rsp + 0x510]
add rsp, 0x4d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret