Function at 0x1400174a0
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov r14d, dword [0x140042b68]
mov eax, 0xff
movzx ebp, byte [0x140042a87]
sub al, r14b
add byte [0x140042b82], al
inc bpl
mov r10d, dword [0x140042a8c]
mov ecx, 0x333
movzx r9d, byte [0x140042b81]
add r10d, 0xffffffed
mov r8d, dword [0x140042b30]
mov eax, 0x29d
sar r10d, 0x1f
mov byte [rsp + 0x21], 0x13
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x2c], 0x69
mov byte [rsp + 0xa8], 0x9d
mov dword [rsp + 0x44], 0x79
mov dword [rsp + 0x24], 0xba
mov dword [rsp + 0x28], 0x6a
mov byte [rsp + 0xb0], bpl
nop dword [rax + rax]
dec r8d
mov byte [0x140042b65], r10b
xor r9b, 1
sub rax, 1
jne 0x140017540
movsx eax, byte [0x140042b56]
mov edx, dword [0x140042b38]
mov r11d, dword [0x140042b5c]
or edx, eax
imul eax, r11d, 7
mov byte [0x140042b81], r9b
mov dword [0x140042b38], edx
add eax, 0x37
and eax, 0x80000001
jge 0x14001758c
dec eax
or eax, 0xfffffffe
inc eax
xor ebx, ebx
test eax, eax
je 0x1400175d9
sub eax, 1
je 0x1400175d4
sub eax, 1
je 0x1400175b9
movzx edi, byte [0x140042a62]
cmp eax, 1
jne 0x140017608
mov eax, dword [0x140042b3c]
xor eax, 1
add dword [0x140042b58], eax
jmp 0x140017608
movzx eax, byte [0x140042b58]
and al, 0x6a
mov byte [0x140042b56], bl
and r10b, al
mov byte [0x140042b65], r10b
jmp 0x140017601
mov dil, 1
jmp 0x140017608
mov ecx, dword [0x140042b3c]
mov eax, ebx
sar eax, cl
or eax, dword [0x140042b28]
xor r11d, eax
movzx eax, byte [0x140042b60]
mov byte [rsp + 0xa8], al
mov dword [0x140042b5c], r11d
movzx edi, byte [0x140042a62]
mov r15d, dword [0x140042b84]
mov esi, 0x20
movzx r12d, byte [0x140042b88]
and r15d, 1
movzx r11d, byte [0x140042b80]
movzx eax, r12b
or al, 0xba
mov dword [0x140042b84], r15d
sub dil, al
xor r11b, 1
cmp byte [0x140042a86], bl
mov byte [0x140042a62], dil
mov byte [rsp + 0x20], r11b
lea r13d, [rdi - 0xd]
mov byte [rsp + 0x30], r13b
je 0x14001766d
mov eax, esi
mov dword [rsp + 0x38], 1
movzx ecx, bpl
shr al, cl
test al, al
jne 0x140017671
mov dword [rsp + 0x38], ebx
mov eax, dword [0x140042b44]
mov ecx, ebx
test eax, eax
movsx r13d, r13b
setne cl
cmp eax, 0xba
mov dword [rsp + 0x34], ecx
mov eax, ebx
mov ecx, ebx
sete cl
xor ecx, esi
cmp dword [0x140042b60], r13d
mov dword [rsp + 0x48], ecx
mov dword [0x140042a88], ecx
mov ecx, ebx
sete cl
cmp byte [rsp + 0xa8], 0x79
sete al
or ecx, eax
jne 0x1400176c0
mov eax, ebx
test r11b, r11b
je 0x1400176c5
mov eax, 1
movzx ecx, byte [0x140042b83]
sub cl, al
mov dword [rsp + 0x3c], 1
mov byte [rsp + 0xb8], cl
mov eax, 0x521
mov byte [0x140042b83], cl
movsx ecx, byte [0x140042b55]
nop
or r8d, ecx
sub rax, 1
jne 0x1400176f0
mov dword [0x140042b30], r8d
mov eax, 0xd2
sub ax, 1
jne 0x140017705
mov r11d, dword [0x140042b2c]
lea eax, [r14 - 0x5d]
mov byte [rsp + 0xa0], al
cmp r11d, 0x79
je 0x140017755
movsx ecx, al
test bpl, bpl
movzx ebp, byte [0x140042b54]
mov eax, ebx
sete al
add ecx, 0x333
xor eax, dword [rsp + 0x38]
add edx, eax
movzx eax, r9b
cmp eax, ecx
mov dword [0x140042b38], edx
sete al
or bpl, al
jmp 0x14001775c
movzx ebp, byte [0x140042b54]
xor r14d, 1
sub r14d, r11d
cmp dword [0x140042b78], ebx
mov dword [0x140042b68], r14d
jne 0x140017779
mov eax, ebx
test sil, r13b
je 0x14001777e
mov eax, 1
mov ecx, dword [rsp + 0x38]
xor ecx, eax
movzx eax, r9b
mov dword [rsp + 0x38], ecx
mov dword [0x140042b7c], ecx
lea ecx, [rax*4 + 0x13]
mov eax, 0xcccccccd
mul ecx
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
je 0x14001784c
sub ecx, 1
je 0x140017810
sub ecx, 1
je 0x1400177e3
movzx eax, byte [rsp + 0xb0]
movzx esi, byte [rsp + 0xa8]
cmp ecx, 1
jne 0x14001786d
mov ecx, dword [rsp + 0x34]
add ecx, 2
mov dword [rsp + 0x40], ecx
jmp 0x14001786d
test r10b, r10b
jne 0x1400177f5
sub esi, r13d
jne 0x1400177f5
mov eax, ebx
cmp byte [rsp + 0x20], bl
je 0x1400177fa
mov eax, 1
or dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0xb0]
movzx esi, byte [rsp + 0xa8]
jmp 0x14001786d
mov eax, dword [0x140042a64]
add r15d, 0x41
movzx esi, byte [rsp + 0xa8]
add r15d, eax
movzx eax, byte [rsp + 0xb0]
movzx r12d, sil
xor r12b, 0x20
mov dword [0x140042b84], r15d
or r12b, byte [0x140042b57]
mov byte [0x140042b88], r12b
jmp 0x14001786d
movsx esi, byte [rsp + 0xa8]
mov eax, esi
imul eax, dword [rsp + 0x34]
shr eax, 2
mov dword [rsp + 0x24], eax
lea eax, [r11 + 3]
mov byte [rsp + 0xb0], al
movzx r11d, al
mov eax, dword [0x140042b3c]
lea ecx, [r11 + rax*4]
mov eax, 0xcccccccd
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
je 0x14001795f
sub ecx, 1
je 0x14001792a
sub ecx, 1
je 0x140017915
cmp ecx, 1
je 0x1400178d6
mov r14d, dword [rsp + 0x3c]
mov ecx, r11d
mov edx, ebx
movsx eax, dil
shl eax, cl
mov ecx, dword [0x140042b60]
cmp eax, 0x6a
mov eax, dword [rsp + 0x24]
sete dl
sar eax, cl
or edx, eax
and r15d, edx
mov dword [0x140042b84], r15d
jmp 0x140017981
mov edx, dword [rsp + 0x24]
movzx ecx, sil
mov eax, edx
sar eax, cl
mov ecx, ebx
cmp eax, 0x79
sete cl
test r14d, ecx
jne 0x140017904
test r10b, r10b
jne 0x140017904
mov r14d, dword [rsp + 0x3c]
mov dword [0x140042a8c], ebx
jmp 0x140017985
mov r14d, dword [rsp + 0x3c]
mov dword [0x140042a8c], 1
jmp 0x140017985
movzx eax, byte [0x140042a86]
mov r14d, dword [rsp + 0x3c]
add eax, 0x18
mov dword [rsp + 0x28], eax
jmp 0x140017981
movsx ecx, byte [rsp + 0xa0]
imul ecx, dword [0x140042b5c]
movsx eax, sil
and eax, r14d
mov r14d, dword [rsp + 0x3c]
mov dword [0x140042b58], eax
mov eax, 0x55555556
imul ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [rsp + 0x2c], ecx
jmp 0x140017981
movzx eax, byte [0x140042a86]
test al, al
jne 0x14001797b
movzx r14d, byte [rsp + 0xa0]
test r14b, r14b
mov r14d, ebx
je 0x140017981
mov r14d, 1
mov edx, dword [rsp + 0x24]
movsx esi, byte [0x140042a63]
mov ecx, dword [rsp + 0x28]
mov r10d, dword [0x140042b40]
sub ecx, esi
and ecx, 7
je 0x140017a47
sub ecx, 1
je 0x1400179f7
sub ecx, 1
je 0x1400179e0
cmp ecx, 1
jne 0x140017a79
and r13d, dword [rsp + 0x2c]
xor r13d, r15d
je 0x1400179d5
mov eax, dword [0x140042b60]
add eax, 0x20
je 0x1400179d5
mov dword [0x140042b78], ecx
jmp 0x140017a79
mov dword [0x140042b78], ebx
jmp 0x140017a79
mov eax, dword [rsp + 0x48]
mov ecx, edx
shr r8d, cl
or eax, r8d
mov dword [0x140042a88], eax
jmp 0x140017a79
movzx r13d, byte [rsp + 0xb8]
mov r15d, dword [rsp + 0x28]
movzx eax, r13b
add al, byte [rsp + 0xb0]
movzx ecx, r15b
add bpl, al
movzx eax, byte [rsp + 0xa8]
sar al, cl
mov ecx, r11d
movzx r11d, byte [0x140042b57]
movsx edx, al
mov eax, ebx
shr eax, cl
cmp eax, edx
sete al
or al, r10b
and r11b, al
mov byte [0x140042b57], r11b
jmp 0x140017a8f
mov ecx, dword [rsp + 0x38]
movzx eax, r9b
add al, byte [rsp + 0x2c]
xor al, byte [0x140042b55]
and r12b, al
shl ecx, 5
mov eax, 0xcccccccd
mov byte [0x140042b88], r12b
mul ecx
shr edx, 2
lea eax, [rdx + rdx*4]
sub ecx, eax
mov dword [rsp + 0x2c], ecx
movzx r11d, byte [0x140042b57]
mov r15d, dword [rsp + 0x28]
movzx r13d, byte [rsp + 0xb8]
mov r12d, dword [rsp + 0x40]
cmp dword [rsp + 0x38], ebx
je 0x140017aae
movsx edx, byte [rsp + 0xa0]
cmp edx, r12d
je 0x140017ab6
mov eax, 1
jmp 0x140017ab8
movzx edx, byte [rsp + 0xa0]
mov eax, ebx
mov ecx, dword [rsp + 0x34]
sub ecx, eax
mov eax, ebx
test r11b, r11b
mov dword [0x140042b6c], ecx
movzx ecx, byte [rsp + 0xa8]
setne al
or bpl, al
movzx eax, byte [0x140042b66]
mov byte [0x140042b54], bpl
cmp al, dl
jne 0x140017aed
cmp cl, al
jge 0x140017b04
test dil, dil
je 0x140017afc
mov eax, 1
test r12d, r12d
jne 0x140017afe
mov eax, ebx
add dword [0x140042b34], eax
movzx ebp, byte [0x140042b56]
test bpl, bpl
jne 0x140017b26
mov eax, dword [0x140042b58]
mov edx, 0x79
and eax, r15d
shl edx, cl
or edx, eax
mov eax, ebx
je 0x140017b2b
mov eax, 1
movzx r8d, byte [0x140042b64]
xor r14d, eax
mov edi, dword [0x140042b5c]
mov eax, ebx
test r8b, r8b
mov dword [0x140042b28], r14d
setne al
or r10d, eax
mov eax, dword [rsp + 0x2c]
mov dword [0x140042b40], r10d
cmp r14d, eax
jne 0x140017bbd
test edi, edi
je 0x140017bbd
lea eax, [r10 + 0xa]
mov byte [rsp + 0x21], al
test r11b, r11b
je 0x140017b7b
cmp byte [rsp + 0x30], 0x20
mov eax, 1
jne 0x140017b7d
mov eax, ebx
add dword [0x140042a8c], eax
movzx r10d, byte [rsp + 0x20]
movsx eax, cl
mov r15d, r10d
imul r15d, eax
mov eax, 0x66666667
shr r13b, cl
imul r15d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub r15d, eax
mov eax, dword [rsp + 0x2c]
or r8b, r13b
mov byte [0x140042b64], r8b
jmp 0x140017bc3
movzx r10d, byte [rsp + 0x20]
test bpl, bpl
jne 0x140017bcd
cmp eax, 1
jbe 0x140017c03
movzx r14d, byte [rsp + 0xa0]
test r12d, r12d
je 0x140017bed
movzx ecx, r14b
mov eax, r15d
shl eax, cl
test eax, eax
mov eax, 1
jne 0x140017bef
mov eax, ebx
mov ecx, dword [0x140042b60]
xor cl, al
sub r9b, cl
mov byte [0x140042b81], r9b
jmp 0x140017c0c
movzx r14d, byte [rsp + 0xa0]
movzx eax, byte [0x140042a87]
sub eax, r15d
add eax, dword [rsp + 0x24]
cmp eax, 0x79
je 0x140017c25
mov eax, ebx
test edi, edi
je 0x140017c2a
mov eax, 1
mov edx, dword [0x140042b4c]
movzx ecx, r12b
xor edx, eax
movzx eax, r14b
sar al, cl
movzx ecx, sil
sar al, cl
movsx ecx, al
lea eax, [rdx + r12]
mov dword [0x140042b4c], edx
cmp eax, ecx
mov edx, ebx
sete dl
mov dword [0x140042b48], edx
test edi, edi
je 0x140017c6b
mov eax, 1
cmp r14b, 0x20
jne 0x140017c6d
mov eax, ebx
and r10b, al
mov eax, 0xcccccccd
movzx esi, r10b
shl esi, 5
mul esi
mov byte [0x140042b80], r10b
shr edx, 2
lea eax, [rdx + rdx*4]
sub esi, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
movzx ebp, byte [rsp + 0x21]
mov eax, 0x55555556
movsx r14d, sil
imul r14d
lea eax, [r14 + 0x20]
mov dword [rsp + 0xb8], r14d
mov edi, edx
shr edi, 0x1f
add edi, edx
add dil, byte [0x140042b66]
test eax, eax
jne 0x140017cc9
mov ecx, ebx
test bpl, bpl
je 0x140017cce
mov ecx, 1
movsx eax, byte [0x140042b67]
or eax, ecx
sub dword [0x140042b40], eax
call qword [sym.imp.KERNEL32.dll_IsThreadAFiber]
movsx r8d, byte [rsp + 0xa8]
mov r9d, 0x32
movzx eax, byte [0x140042b88]
mov r13d, dword [0x140042b34]
movzx r11d, byte [0x140042a63]
movzx r10d, byte [0x140042b57]
movzx ecx, bpl
mov ebp, dword [0x140042b7c]
add ebp, ecx
mov dword [rsp + 0xb0], ecx
cmp dword [0x140042b38], r8d
movzx ecx, sil
mov esi, dword [0x140042b2c]
mov r14d, dword [rsp + 0xb0]
sete r15b
sar al, cl
movsx ecx, byte [0x140042b66]
movsx r12d, al
mov eax, 0x66666667
shl ecx, 5
imul ecx
mov dword [rsp + 0x34], r8d
mov ecx, edx
sar ecx, 1
mov eax, ecx
shr eax, 0x1f
add ecx, eax
movzx eax, byte [0x140042b67]
and al, r8b
mov dword [rsp + 0x48], ecx
mov r8d, dword [0x140042b40]
movsx eax, al
imul ecx, eax, 0x32
add byte [0x140042b55], cl
movzx ecx, byte [0x140042b82]
nop
mov edx, dword [rsp + 0x40]
dec r9d
test ebp, ebp
jne 0x140017da6
mov eax, r14d
shr eax, cl
test edx, eax
mov eax, ebx
je 0x140017dab
mov eax, 1
sub r10b, al
test r8d, r8d
je 0x140017dbd
cmp byte [rsp + 0x21], bl
je 0x140017dbd
mov cl, 1
jmp 0x140017dbf
xor cl, cl
sub r11b, r15b
mov byte [0x140042b82], cl
and r8d, r12d
mov eax, ebx
cmp dil, 0x79
seta al
cmp eax, r13d
jae 0x140017de5
mov eax, 0xaaaaaaab
mul edx
shr edx, 1
lea edi, [rsi + rdx]
test r9d, r9d
jne 0x140017d90
movzx edx, byte [0x140042b80]
mov ecx, r14d
mov ebp, dword [0x140042a64]
xor dword [0x140042b48], 1
add ebp, 0xd
shl dl, cl
cmp byte [rsp + 0xa0], 0x41
mov dword [0x140042b40], r8d
sete al
mov byte [0x140042b57], r10b
and dl, al
mov byte [0x140042a63], r11b
or dl, sil
mov byte [0x140042b80], dl
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
mov r11d, dword [0x140042b48]
mov eax, 0xaaaaaaab
mov esi, dword [0x140042b38]
mov r10d, 0x95
sub r11d, dword [rsp + 0x2c]
movzx r13d, byte [0x140042b81]
mov r15d, dword [0x140042b28]
mov r12d, dword [0x140042b84]
movzx r9d, byte [0x140042b82]
movzx r8d, byte [0x140042b65]
mul r14d
mov r14d, dword [rsp + 0xb8]
shr edx, 1
add esi, edx
movzx edi, dil
add edi, r14d
mov ecx, dword [rsp + 0x44]
mov eax, r11d
shr eax, cl
mov dword [0x140042b3c], eax
test r12d, r12d
jne 0x140017ebd
movzx eax, r13b
mov edx, ebx
cmp ebp, eax
mov ecx, r14d
mov eax, r14d
sete dl
shl eax, cl
test eax, edx
mov eax, ebx
je 0x140017ec2
mov eax, 1
sub r8b, al
mov dword [rsp + 0x44], esi
test edi, edi
je 0x140017edb
mov eax, 1
cmp byte [rsp + 0xa8], bl
jne 0x140017edd
mov eax, ebx
or al, r15b
add r9b, al
sub r10, 1
jne 0x140017e90
mov byte [0x140042b65], r8b
mov byte [0x140042b82], r9b
call qword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov eax, dword [rsp + 0xb0]
mov r11d, 0x1a2
mov r12d, dword [rsp + 0x2c]
add eax, r14d
add eax, dword [0x140042b84]
mov ecx, r12d
mov edi, dword [0x140042b7c]
add eax, esi
mov esi, dword [0x140042b40]
movzx r10d, byte [0x140042a63]
mov r9d, dword [0x140042b3c]
mov r8d, dword [0x140042b4c]
mov r15d, dword [rsp + 0x34]
shr edi, cl
mov ecx, eax
shr esi, cl
mov ecx, ebp
shr ebp, cl
cmp r14d, ebp
movzx ebp, byte [0x140042b88]
mov r14d, dword [rsp + 0x48]
sete bl
add r8d, edi
sub r9d, esi
test bpl, bpl
jne 0x140017f7a
mov eax, r15d
mov byte [0x140042b66], bpl
or eax, r14d
je 0x140017f81
mov byte [0x140042b66], 1
mov ecx, ebx
movzx edx, r8b
shl dl, cl
sub r10b, dl
sub r11, 1
jne 0x140017f60
mov dword [0x140042b4c], r8d
mov dword [0x140042b3c], r9d
mov byte [0x140042a63], r10b
call fcn.140016b60
mov eax, dword [rsp + 0x24]
xor eax, r12d
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret