Function at 0x120100380
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
xor r9d, r9d
lea rdi, [rcx + 0x10]
mov word [rcx + 0x10], r9w
mov r13, rcx
mov rbx, rdx
mov qword [rcx], rdi
mov qword [rcx + 8], 0
movzx eax, byte [rdx + 9]
cmp al, 0x73
je 0x120100758
cmp al, 0x69
je 0x120100400
cmp al, 0x64
je 0x120100400
cmp al, 0x75
je 0x120100560
cmp al, 0x78
je 0x120100680
cmp al, 0x58
je 0x120100890
cmp al, 0x70
je 0x120100758
mov rax, r13
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r8]
movzx edx, byte [rbx + 8]
mov ebp, 0x2d
test eax, eax
js 0x12010041e
mov ebp, 0x2b
test dl, 0x10
je 0x120100788
lea r8, [rsp + 0xb2]
mov r12, r8
nop dword [rax]
movsxd rcx, eax
mov r10d, eax
mov r9, r12
sub r12, 2
imul rcx, rcx, 0x66666667
sar r10d, 0x1f
sar rcx, 0x22
sub ecx, r10d
lea r10d, [rcx + rcx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov word [r12], ax
mov eax, ecx
test ecx, ecx
jne 0x120100430
test dl, 4
je 0x1201005e8
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x120100800
test r15, r15
je 0x120100800
lea r14, [rsp + 0x80]
xor ecx, ecx
sub r15, 1
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], cx
test al, al
jne 0x120100ae3
cmp r15, rsi
jbe 0x1201009be
and edx, 8
je 0x120100bed
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x120100b20
sar rax, 1
mov r10, rax
cmp r10, rdx
ja 0x120100df6
mov qword [rsp + 0x20], rsi
lea rbp, [rsp + 0x70]
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, rbp
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
cmp r15, rsi
jbe 0x120100858
test byte [rbx + 8], 8
je 0x120100858
mov dword [rsp + 0x20], 0x20
sub r15, rsi
xor r8d, r8d
mov rcx, rbp
mov r9, r15
call fcn.120001ca8
mov rdx, qword [rsp + 0x78]
jmp 0x120100858
mov eax, dword [r8]
movzx edx, byte [rdx + 8]
mov ebp, 0x2d
test eax, eax
js 0x120100587
mov ebp, 0x2b
test dl, 0x10
jne 0x120100587
mov ebp, edx
mov ecx, 0x20
and ebp, 2
cmovne ebp, ecx
lea r8, [rsp + 0xb2]
mov r12, r8
nop word [rax + rax]
movsxd rcx, eax
mov r10d, eax
mov r9, r12
sub r12, 2
imul rcx, rcx, 0x66666667
sar r10d, 0x1f
sar rcx, 0x22
sub ecx, r10d
lea r10d, [rcx + rcx*4]
add r10d, r10d
sub eax, r10d
mov r10d, eax
sar r10d, 0x1f
xor eax, r10d
sub eax, r10d
add eax, 0x30
mov word [r12], ax
mov eax, ecx
test ecx, ecx
jne 0x120100598
test dl, 4
jne 0x1201008c8
nop dword [rax]
test bpl, bpl
jne 0x120100770
mov rdx, r12
lea rcx, [rsp + 0x50]
lea rbx, [rsp + 0x60]
xor r9d, r9d
mov qword [rsp + 0x50], rbx
call fcn.120153650
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [r13]
cmp rax, rbx
je 0x1201007a0
mov r8, qword [rsp + 0x60]
cmp rdi, rcx
je 0x1201007e8
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
test rcx, rcx
je 0x1201003e4
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], 0
xor r10d, r10d
mov word [rcx], r10w
cmp rcx, rbx
je 0x1201003e4
mov rax, qword [rsp + 0x60]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
jmp 0x1201003e4
lea r14, [rsp + 0x80]
mov eax, dword [r8]
mov r10, r14
nop
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x57]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r10, 2
shr eax, 4
mov word [r10], dx
jne 0x120100690
lea rcx, [rsp + 0x90]
xor r9d, r9d
mov r8, r14
mov rdx, r10
lea rsi, [rsp + 0xa0]
mov qword [rsp + 0x90], rsi
call fcn.120153650
mov rax, qword [rsp + 0x90]
mov rcx, qword [r13]
cmp rax, rsi
je 0x120100a10
mov rdx, qword [rsp + 0xa0]
mov r8, qword [rsp + 0x98]
cmp rdi, rcx
je 0x120100b0f
mov r9, qword [r13 + 0x10]
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
test rcx, rcx
je 0x120100758
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], 0
xor eax, eax
mov word [rcx], ax
cmp rcx, rsi
je 0x120100758
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call sub.libstdc_6.dll_operator_delete_void__unsigned_long_long_
nop dword [rax]
movzx r8d, byte [rbx + 8]
mov rdx, qword [rbx]
mov rcx, r13
call fcn.120111eb0
jmp 0x1201003e4
movsx bp, bpl
mov word [r12 - 2], bp
lea r12, [r9 - 4]
jmp 0x1201005f1
mov ebp, edx
mov ecx, 0x20
and ebp, 2
cmovne ebp, ecx
jmp 0x12010041e
lea r8, [rdx + rdx]
mov rax, rbx
test rdx, rdx
je 0x1201007d0
cmp rdx, 1
je 0x1201009fb
mov rdx, rbx
call sub.msvcrt.dll_memcpy
mov rdx, qword [rsp + 0x58]
mov rcx, qword [r13]
mov rax, qword [rsp + 0x50]
lea r8, [rdx + rdx]
xor r11d, r11d
mov qword [r13 + 8], rdx
mov word [rcx + r8], r11w
mov rcx, rax
jmp 0x120100653
mov qword [r13], rax
mov qword [r13 + 8], rdx
mov qword [r13 + 0x10], r8
jmp 0x1201003e4
lea r14, [rsp + 0x80]
xor r11d, r11d
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r11w
test al, al
je 0x120100ac8
test bpl, bpl
jne 0x120100ae3
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x120100a75
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
je 0x120100a5f
mov rcx, qword [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rdx
jmp 0x120100615
lea r14, [rsp + 0x80]
mov eax, dword [r8]
mov r10, r14
nop
mov ecx, eax
and ecx, 0xf
cmp ecx, 0xa
lea r8d, [rcx + 0x37]
lea edx, [rcx + 0x30]
cmovge edx, r8d
sub r10, 2
shr eax, 4
mov word [r10], dx
jne 0x1201008a0
jmp 0x1201006b0
mov rsi, r8
mov eax, edx
mov r15, qword [rbx]
sub rsi, r12
and eax, 1
sar rsi, 1
test bpl, bpl
je 0x120100b96
test r15, r15
je 0x120100b96
lea r14, [rsp + 0x80]
xor r8d, r8d
sub r15, 1
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], r8w
test al, al
jne 0x120100c3a
cmp r15, rsi
ja 0x120100c0f
movsx bp, bpl
mov r10d, 1
xor eax, eax
mov rcx, r14
mov qword [rsp + 0x30], 2
mov r11d, 1
mov rdx, r11
mov word [rcx + rax], bp
mov rax, qword [rsp + 0x30]
xor ebp, ebp
mov qword [rsp + 0x78], r11
mov word [rcx + rax], bp
cmp rdx, r10
jb 0x120100df6
mov qword [rsp + 0x20], rsi
lea rbp, [rsp + 0x70]
mov rdx, r10
mov r9, r12
xor r8d, r8d
mov rcx, rbp
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
cmp r15, rsi
jbe 0x120100990
test byte [rbx + 8], 8
jne 0x120100d59
mov rax, qword [rsp + 0x70]
lea rbx, [rsp + 0x60]
mov qword [rsp + 0x50], rbx
cmp rax, r14
jne 0x120100870
movdqu xmm1, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm1
jmp 0x120100882
movsx bp, bpl
mov rcx, r14
xor eax, eax
mov r10d, 1
mov qword [rsp + 0x30], 2
mov r11d, 1
mov rdx, r11
mov word [rcx + rax], bp
mov rax, qword [rsp + 0x30]
xor r9d, r9d
mov qword [rsp + 0x78], r11
mov word [rcx + rax], r9w
jmp 0x1201004fb
movzx r8d, word [rsp + 0x60]
mov word [rcx], r8w
mov r8d, 2
jmp 0x1201007d0
mov rax, qword [rsp + 0x98]
mov rdx, rsi
lea r8, [rax + rax]
test rax, rax
je 0x120100a4b
cmp rax, 1
je 0x120100ccb
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x98]
mov rcx, qword [r13]
mov rdx, qword [rsp + 0x90]
lea r8, [rax + rax]
xor r9d, r9d
mov qword [r13 + 8], rax
mov word [rcx + r8], r9w
mov rcx, rdx
jmp 0x120100729
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, rbx
movups xmmword [rsp + 0x60], xmm0
jmp 0x120100882
mov dword [rsp + 0x20], 0x30
sub r15, rsi
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov r9, r15
mov qword [rsp + 0x30], rcx
call fcn.120001ca8
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
lea r8, [r9 + r9]
sar r8, 1
cmp r8, r9
mov rdx, r8
jbe 0x120100843
lea rdx, [0x1205bf4e0]
lea rcx, [0x1205bf4f8]
call fcn.120001bf0
nop dword [rax]
cmp r15, rsi
ja 0x1201004d5
test bpl, bpl
jne 0x120100d9e
xor eax, eax
xor edx, edx
jmp 0x1201004f5
movsx bp, bpl
xor r10d, r10d
mov edx, 1
mov qword [rsp + 0x78], 1
mov word [rsp + 0x80], bp
mov word [rsp + 0x82], r10w
jmp 0x120100835
mov qword [r13], rax
mov qword [r13 + 8], r8
mov qword [r13 + 0x10], rdx
jmp 0x120100758
lea r11, [rdx + 1]
movsx bp, bpl
lea r9, [r11 + r11]
mov r10, r9
mov qword [rsp + 0x30], r9
sar r10, 1
cmp rcx, r14
je 0x120100dbc
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x1201009dd
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r11
mov qword [rsp + 0x38], r10
call fcn.120001c80
mov r11, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x38]
mov rdx, r11
jmp 0x1201009e0
lea r14, [rsp + 0x80]
xor ecx, ecx
mov qword [rsp + 0x78], 0
mov qword [rsp + 0x70], r14
mov word [rsp + 0x80], cx
test al, al
je 0x120100cb0
test bpl, bpl
jne 0x120100c3a
xor edx, edx
lea rcx, [rsp + 0x70]
cmp r15, rsi
ja 0x120100c64
mov qword [rsp + 0x20], rsi
mov r9, r12
xor r8d, r8d
call fcn.120001cb8
mov rdx, qword [rsp + 0x78]
jmp 0x120100990
mov dword [rsp + 0x20], 0x20
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
sub r9, rsi
call fcn.120001ca8
jmp 0x1201004de
and edx, 8
je 0x120100d7c
mov rdx, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea rax, [rdx + rdx]
test bpl, bpl
jne 0x120100ce3
sar rax, 1
mov r10, rax
jmp 0x120100958
movsx bp, bpl
xor eax, eax
mov edx, 1
mov qword [rsp + 0x78], 1
mov word [rsp + 0x80], bp
mov word [rsp + 0x82], ax
jmp 0x120100bc5
mov dword [rsp + 0x20], 0x30
sub r15, rsi
lea rcx, [rsp + 0x70]
xor r8d, r8d
mov r9, r15
mov qword [rsp + 0x30], rcx
call fcn.120001ca8
mov r9, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x30]
lea r8, [r9 + r9]
sar r8, 1
cmp r8, r9
mov rdx, r8
jbe 0x120100bd3
jmp 0x120100ab2
cmp r15, rsi
ja 0x120100c0f
test bpl, bpl
jne 0x120100dca
xor eax, eax
xor edx, edx
jmp 0x120100c2f
movzx r8d, word [rsp + 0xa0]
mov word [rcx], r8w
mov r8d, 2
jmp 0x120100a4b
lea r11, [rdx + 1]
movsx bp, bpl
lea r9, [r11 + r11]
mov qword [rsp + 0x30], r9
sar r9, 1
mov r10, r9
cmp rcx, r14
je 0x120100de8
mov r8, qword [rsp + 0x80]
cmp r11, r8
jbe 0x120100941
lea rcx, [rsp + 0x70]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x20], 1
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x38], r11
call fcn.120001c80
mov r11, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x48]
mov r10, qword [rsp + 0x40]
mov rdx, r11
jmp 0x120100944
mov dword [rsp + 0x20], 0x20
sub r15, rsi
xor r8d, r8d
mov rcx, rbp
mov r9, r15
call fcn.120001ca8
mov rdx, qword [rsp + 0x78]
jmp 0x120100990
mov dword [rsp + 0x20], 0x20
mov r9, r15
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0x70]
sub r9, rsi
call fcn.120001ca8
jmp 0x120100c18
movsx bp, bpl
xor eax, eax
xor edx, edx
mov r11d, 1
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rcx, r14
mov r8d, 7
jmp 0x120100b49
movsx bp, bpl
xor eax, eax
mov r11d, 1
xor edx, edx
mov qword [rsp + 0x30], 2
mov r10d, 1
mov rcx, r14
mov r8d, 7
jmp 0x120100d0c
mov r9, rdx
mov r8, r10
jmp 0x120100ab2