Function at 0x6c292bb0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov esi, dword [rsp + 0x110]
mov rbx, qword [rsp + 0x150]
test rcx, rcx
mov r12, rcx
mov r14, rdx
mov rdi, r8
mov qword [rsp + 0xf8], r9
je 0x6c293837
test dword [rsp + 0x120], 0xfffffff7
jne 0x6c293837
cmp dword [rcx + 0x58], 1
je 0x6c293780
test r14, r14
je 0x6c2936f0
mov rcx, r14
call sym.strlen
mov rbp, rax
mov r15d, eax
mov byte [rsp + 0x6b], al
shr eax, 8
mov dword [rsp + 0x40], eax
mov eax, ebp
shr eax, 0x10
cmp qword [rsp + 0x118], 0
mov dword [rsp + 0x60], eax
je 0x6c293723
mov rcx, qword [rsp + 0x118]
call sym.strlen
mov ecx, eax
mov r13d, eax
mov byte [rsp + 0x6a], al
shr ecx, 8
shr eax, 0x10
test rdi, rdi
mov dword [rsp + 0x50], ecx
mov dword [rsp + 0x6c], eax
je 0x6c293741
mov eax, dword [rdi + 0x18]
test eax, eax
je 0x6c2930a0
mov dword [r12 + 0x40e0], eax
mov eax, dword [rsp + 0x128]
sub eax, 8
cmp eax, 2
setb al
movzx eax, al
add eax, eax
cmp dword [rsp + 0x128], 2
mov dword [r12 + 0xd4], eax
je 0x6c293370
cmp dword [rsp + 0x128], 1
je 0x6c2930e5
test rbx, rbx
je 0x6c292cc8
or dword [r12 + 0xd4], 1
mov eax, dword [rsp + 0x120]
mov rdx, qword [r12 + 0x40]
mov rcx, qword [r12 + 0x38]
mov dword [r12 + 0x40e4], 0
mov dword [r12 + 0x40e8], 0
mov dword [r12 + 0xd8], eax
mov eax, dword [rsp + 0x130]
mov dword [r12 + 0xb8], 0
mov dword [r12 + 0xbc], 0
mov dword [r12 + 0xdc], eax
call qword [r12 + 0x18]
lea ecx, [r15 + rsi + 0x2e]
mov dword [r12 + 0xc0], eax
add ecx, r13d
mov dword [r12 + 0xd0], ecx
call sym.malloc
lea rcx, [rax + 4]
mov qword [r12 + 0xc8], rax
mov rdx, rax
mov r8d, 0x2014b50
mov byte [rdx], r8b
add rdx, 1
shr r8d, 8
cmp rcx, rdx
jne 0x6c292d57
test r8d, r8d
jne 0x6c293110
mov byte [rax + 4], 0
mov byte [rax + 5], 0
mov rax, qword [r12 + 0xc8]
mov byte [rax + 6], 0x14
mov byte [rax + 7], 0
mov eax, dword [r12 + 0xd4]
mov rcx, qword [r12 + 0xc8]
mov edx, eax
mov byte [rcx + 8], al
shr eax, 0x10
shr edx, 8
test eax, eax
mov byte [rcx + 9], dl
jne 0x6c2930f3
mov eax, dword [r12 + 0xd8]
mov rcx, qword [r12 + 0xc8]
mov edx, eax
mov byte [rcx + 0xa], al
shr eax, 0x10
shr edx, 8
test eax, eax
mov byte [rcx + 0xb], dl
jne 0x6c293170
mov r8, qword [r12 + 0xc8]
mov edx, dword [r12 + 0x40e0]
lea rcx, [r8 + 0xc]
add r8, 0x10
mov rax, rcx
mov byte [rax], dl
add rax, 1
shr edx, 8
cmp r8, rax
jne 0x6c292def
test edx, edx
jne 0x6c293160
mov rax, qword [r12 + 0xc8]
mov r9d, dword [rsp + 0x60]
mov byte [rax + 0x10], 0
mov byte [rax + 0x11], 0
test r9d, r9d
mov byte [rax + 0x12], 0
mov byte [rax + 0x13], 0
mov rax, qword [r12 + 0xc8]
mov byte [rax + 0x14], 0
mov byte [rax + 0x15], 0
mov byte [rax + 0x16], 0
mov byte [rax + 0x17], 0
mov rax, qword [r12 + 0xc8]
mov byte [rax + 0x18], 0
mov byte [rax + 0x19], 0
mov byte [rax + 0x1a], 0
mov byte [rax + 0x1b], 0
movzx eax, byte [rsp + 0x6b]
mov rcx, qword [r12 + 0xc8]
mov byte [rcx + 0x1c], al
movzx eax, byte [rsp + 0x40]
mov byte [rcx + 0x1d], al
jne 0x6c293143
mov rcx, qword [r12 + 0xc8]
mov eax, esi
shr eax, 8
mov byte [rcx + 0x1f], al
mov eax, esi
mov byte [rcx + 0x1e], sil
shr eax, 0x10
test eax, eax
jne 0x6c293130
movzx eax, byte [rsp + 0x6a]
mov rcx, qword [r12 + 0xc8]
mov r8d, dword [rsp + 0x6c]
mov byte [rcx + 0x20], al
movzx eax, byte [rsp + 0x50]
test r8d, r8d
mov byte [rcx + 0x21], al
jne 0x6c293192
mov rax, qword [r12 + 0xc8]
test rdi, rdi
mov byte [rax + 0x22], 0
mov byte [rax + 0x23], 0
je 0x6c293752
mov eax, dword [rdi + 0x1c]
mov rcx, qword [r12 + 0xc8]
mov edx, eax
mov byte [rcx + 0x24], al
shr eax, 0x10
shr edx, 8
test eax, eax
mov byte [rcx + 0x25], dl
jne 0x6c293390
mov r8, qword [r12 + 0xc8]
mov edx, dword [rdi + 0x20]
lea rcx, [r8 + 0x26]
add r8, 0x2a
mov rax, rcx
mov byte [rax], dl
add rax, 1
shr edx, 8
cmp r8, rax
jne 0x6c292f0a
test edx, edx
jne 0x6c293380
mov r8, qword [r12 + 0xc8]
mov edx, dword [r12 + 0xc0]
sub edx, dword [r12 + 0x410c]
lea rcx, [r8 + 0x2a]
add r8, 0x2e
mov rax, rcx
mov byte [rax], dl
add rax, 1
shr edx, 8
cmp r8, rax
jne 0x6c292f43
test edx, edx
jne 0x6c293183
test r15d, r15d
je 0x6c292f8a
lea r8d, [r15 - 1]
mov eax, 0x2e
add r8, 0x2f
nop dword [rax + rax]
movzx ecx, byte [r14 + rax - 0x2e]
mov rdx, qword [r12 + 0xc8]
mov byte [rdx + rax], cl
add rax, 1
cmp r8, rax
jne 0x6c292f70
test esi, esi
je 0x6c292fca
lea ecx, [rsi - 1]
mov r8, qword [rsp + 0x108]
mov edx, ebp
lea rax, [rdx + 0x2e]
lea r9, [rdx + rcx + 0x2f]
sub r8, rdx
nop word [rax + rax]
movzx ecx, byte [r8 + rax - 0x2e]
mov rdx, qword [r12 + 0xc8]
mov byte [rdx + rax], cl
add rax, 1
cmp r9, rax
jne 0x6c292fb0
test r13d, r13d
je 0x6c293009
mov ebp, ebp
lea edx, [r13 - 1]
mov r8, qword [rsp + 0x118]
lea rax, [rsi + rbp + 0x2e]
lea r9, [rax + rdx + 1]
sub r8, rax
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
mov rdx, qword [r12 + 0xc8]
mov byte [rdx + rax], cl
add rax, 1
cmp r9, rax
jne 0x6c292ff0
cmp qword [r12 + 0xc8], 0
je 0x6c293865
lea rsi, [r12 + 0x10]
lea rdi, [r12 + 0x38]
mov r8, qword [r12 + 0x40]
mov dword [rsp + 0x20], 4
mov r9d, 0x4034b50
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
je 0x6c2931a5
lea rax, [r12 + 0xe0]
mov dword [r12 + 0x68], 0
mov dword [r12 + 0x78], 0x4000
mov dword [r12 + 0x6c], 0
mov dword [r12 + 0x7c], 0
mov qword [r12 + 0x70], rax
mov dword [r12 + 0x4100], 0
mov eax, ebp
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [rdi + 0x14]
cmp eax, 0x7bc
ja 0x6c2936e2
lea edx, [rax - 0x50]
cmp eax, 0x51
cmovae eax, edx
mov edx, dword [rdi + 0x10]
shl eax, 4
lea eax, [rdx + rax + 1]
mov edx, dword [rdi + 8]
shl eax, 5
add eax, dword [rdi + 0xc]
shl edx, 6
add edx, dword [rdi + 4]
shl eax, 0x10
mov ecx, eax
mov eax, dword [rdi]
shl edx, 5
shr eax, 1
add eax, edx
or eax, ecx
jmp 0x6c292c79
or dword [r12 + 0xd4], 6
jmp 0x6c292cba
add rcx, 8
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292dae
mov rcx, rax
mov edx, 4
call sym.ziplocal_putValue_inmemory.part.2
mov rax, qword [r12 + 0xc8]
jmp 0x6c292d70
add rcx, 0x1e
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292e94
add rcx, 0x1c
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292e73
mov edx, 4
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292e05
add rcx, 0xa
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292dd4
mov edx, 4
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292f59
add rcx, 0x20
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292eba
mov r8, qword [r12 + 0x40]
mov dword [rsp + 0x20], 2
mov r9d, 0x14
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r9d, dword [r12 + 0xd4]
mov r8, qword [r12 + 0x40]
mov rdx, rdi
mov dword [rsp + 0x20], 2
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r9d, dword [r12 + 0xd8]
mov r8, qword [r12 + 0x40]
mov rdx, rdi
mov dword [rsp + 0x20], 2
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r9d, dword [r12 + 0x40e0]
mov r8, qword [r12 + 0x40]
mov rdx, rdi
mov dword [rsp + 0x20], 4
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r8, qword [r12 + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], 4
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r8, qword [r12 + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], 4
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r8, qword [r12 + 0x40]
xor r9d, r9d
mov dword [rsp + 0x20], 4
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r8, qword [r12 + 0x40]
mov dword [rsp + 0x20], 2
mov r9d, r15d
mov rdx, rdi
mov rcx, rsi
call sym.ziplocal_putValue.isra.1
test eax, eax
mov ebp, eax
jne 0x6c29304a
mov r9d, dword [rsp + 0x100]
mov r8, qword [r12 + 0x40]
mov rdx, rdi
mov rcx, rsi
mov dword [rsp + 0x20], 2
call sym.ziplocal_putValue.isra.1
test eax, eax
sete dl
test r15d, r15d
setne sil
and sil, dl
je 0x6c293876
mov rdx, qword [r12 + 0x40]
mov rcx, qword [r12 + 0x38]
mov r9d, r15d
mov r8, r14
call qword [r12 + 0x10]
cmp eax, r15d
je 0x6c2933a3
lea rax, [r12 + 0xe0]
mov dword [r12 + 0x68], 0
mov dword [r12 + 0x78], 0x4000
mov dword [r12 + 0x6c], 0
mov dword [r12 + 0x7c], 0
mov ebp, 0xffffffff
mov qword [r12 + 0x70], rax
jmp 0x6c29307b
or dword [r12 + 0xd4], 4
jmp 0x6c292cba
mov edx, 4
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292f20
add rcx, 0x24
mov edx, 2
call sym.ziplocal_putValue_inmemory.part.2
jmp 0x6c292ef4
xor eax, eax
mov edx, dword [rsp + 0x100]
test edx, edx
je 0x6c2936a2
test sil, sil
je 0x6c2936a2
mov rdx, qword [r12 + 0x40]
mov rcx, qword [r12 + 0x38]
mov r9d, dword [rsp + 0x100]
mov r8, qword [rsp + 0xf8]
call qword [r12 + 0x10]
cmp dword [rsp + 0x100], eax
jne 0x6c29332e
lea rax, [r12 + 0xe0]
mov dword [r12 + 0x68], 0
mov dword [r12 + 0x78], 0x4000
mov dword [r12 + 0x6c], 0
mov dword [r12 + 0x7c], 0
mov qword [r12 + 0x70], rax
nop word [rax + rax]
cmp qword [r12 + 0xd8], 8
je 0x6c2937a0
test rbx, rbx
mov dword [r12 + 0x4100], 0
je 0x6c293694
mov dword [r12 + 0x40e8], 1
lea rdi, [r12 + 0x40ec]
call dbg.get_crc_table
mov rsi, rax
mov qword [r12 + 0x40f8], rax
mov eax, dword [0x6c2b8010]
add eax, 1
cmp eax, 1
mov dword [0x6c2b8010], eax
je 0x6c293841
mov dword [r12 + 0x40ec], 0x12345678
mov dword [r12 + 0x40f0], 0x23456789
mov r15, rbx
mov dword [r12 + 0x40f4], 0x34567890
movsx r8d, byte [rbx]
test r8b, r8b
je 0x6c2934c8
add r15, 1
mov rdx, rsi
mov rcx, rdi
call dbg.update_keys
movsx r8d, byte [r15]
test r8b, r8b
jne 0x6c2934b0
lea rax, [rsp + 0x7a]
lea r13, [rsp + 0x84]
mov qword [rsp + 0x60], rax
mov r15, rax
nop dword [rax]
call sym.rand
sar eax, 7
mov rdx, rsi
add r15, 1
mov ecx, eax
movzx eax, word [r12 + 0x40f4]
mov dword [rsp + 0x40], ecx
movzx r8d, byte [rsp + 0x40]
mov rcx, rdi
or eax, 2
mov r14d, eax
call dbg.update_keys
mov eax, r14d
xor eax, 1
imul eax, r14d
shr eax, 8
xor al, byte [rsp + 0x40]
mov byte [r15 - 1], al
cmp r13, r15
jne 0x6c2934e0
mov dword [r12 + 0x40ec], 0x12345678
mov dword [r12 + 0x40f0], 0x23456789
mov dword [r12 + 0x40f4], 0x34567890
movsx r8d, byte [rbx]
test r8b, r8b
je 0x6c29385b
nop dword [rax]
add rbx, 1
mov rdx, rsi
mov rcx, rdi
call dbg.update_keys
movsx r8d, byte [rbx]
test r8b, r8b
jne 0x6c293560
mov ebx, dword [r12 + 0x40f4]
mov r11d, ebx
xor r14d, r14d
lea r13, [rsp + 0x84]
mov rbx, qword [rsp + 0x60]
jmp 0x6c29359d
mov r11d, dword [r12 + 0x40f4]
movzx r8d, byte [rbx + r14]
movzx r11d, r11w
mov rdx, rsi
or r11d, 2
mov rcx, rdi
mov dword [rsp + 0x40], r11d
call dbg.update_keys
mov r11d, dword [rsp + 0x40]
mov eax, r11d
xor eax, 1
imul r11d, eax
shr r11d, 8
xor r11d, r8d
mov byte [r13 + r14], r11b
add r14, 1
cmp r14, 0xa
jne 0x6c293595
movzx eax, word [r12 + 0x40f4]
mov ebx, dword [rsp + 0x158]
mov rdx, rsi
mov rcx, rdi
shr ebx, 0x10
or eax, 2
movzx r8d, bl
mov r15d, eax
call dbg.update_keys
mov eax, r15d
movzx r8d, word [r12 + 0x40f4]
mov rdx, rsi
xor eax, 1
mov rcx, rdi
imul eax, r15d
mov r11d, r8d
shr eax, 8
or r11d, 2
xor eax, ebx
mov ebx, dword [rsp + 0x158]
mov byte [rsp + 0x8e], al
shr ebx, 0x18
mov r8d, ebx
call dbg.update_keys
mov r8d, r11d
mov dword [r12 + 0x4100], 0xc
mov rdx, qword [r12 + 0x40]
xor r8d, 1
mov rcx, qword [r12 + 0x38]
mov r9d, 0xc
imul r8d, r11d
shr r8d, 8
xor r8d, ebx
mov byte [rsp + 0x8f], r8b
mov r8, r13
call qword [r12 + 0x10]
cmp eax, 0xc
setne al
movzx eax, al
neg eax
jne 0x6c29386f
mov dword [r12 + 0x58], 1
jmp 0x6c293087
lea rdx, [r12 + 0xe0]
test eax, eax
mov dword [r12 + 0x68], 0
mov dword [r12 + 0x78], 0x4000
mov dword [r12 + 0x6c], 0
mov qword [r12 + 0x70], rdx
mov dword [r12 + 0x7c], 0
je 0x6c293420
mov ebp, eax
jmp 0x6c29307b
sub eax, 0x7bc
jmp 0x6c2930b7
cmp qword [rsp + 0x118], 0
mov dword [rsp + 0x60], 0
mov r15d, 1
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x6b], 1
mov ebp, 1
lea r14, [0x6c2a7480]
jne 0x6c292c41
xor r13d, r13d
test rdi, rdi
mov dword [rsp + 0x6c], 0
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x6a], 0
jne 0x6c292c6e
mov dword [r12 + 0x40e0], 0
jmp 0x6c292c81
mov rax, qword [r12 + 0xc8]
mov byte [rax + 0x24], 0
mov byte [rax + 0x25], 0
mov rax, qword [r12 + 0xc8]
mov byte [rax + 0x26], 0
mov byte [rax + 0x27], 0
mov byte [rax + 0x28], 0
mov byte [rax + 0x29], 0
jmp 0x6c292f20
xor r8d, r8d
xor edx, edx
call dbg.zipCloseFileInZipRaw
test eax, eax
mov ebp, eax
je 0x6c292c07
jmp 0x6c293087
mov edx, dword [rsp + 0x148]
mov r9d, dword [rsp + 0x138]
lea rdi, str.1.2.5
mov eax, dword [rsp + 0x138]
lea rcx, [r12 + 0x60]
mov qword [r12 + 0x90], 0
mov qword [r12 + 0x98], 0
mov qword [r12 + 0xa0], 0
mov r8d, 8
mov dword [rsp + 0x28], edx
mov edx, dword [rsp + 0x140]
sar r9d, 0x1f
xor eax, r9d
mov dword [rsp + 0x38], 0x58
mov qword [rsp + 0x30], rdi
sub r9d, eax
mov dword [rsp + 0x20], edx
mov edx, dword [rsp + 0x128]
call dbg.deflateInit2_
test eax, eax
jne 0x6c2936db
mov dword [r12 + 0xb8], 1
jmp 0x6c29342f
mov ebp, 0xffffff9a
jmp 0x6c293087
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__time64]
mov ecx, eax
xor ecx, 0xbb40e64e
call sym.srand
jmp 0x6c293480
mov ebx, 0x34567890
jmp 0x6c293580
mov ebp, 0xffffff98
jmp 0x6c293087
mov ebp, eax
jmp 0x6c293087
mov esi, edx
jmp 0x6c2933a5