Function at 0x14024c130
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x168
lea rbp, [rsp + 0x80]
mov qword [rbp], rcx
mov eax, 0x10
mov qword [rbp + 0x18], rax
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 8], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 0x10], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x18]
mov rcx, rsp
mov qword [rbp + 0x20], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x28], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov rcx, qword [rbp + 0x30]
add rsp, 0x20
mov qword [rbp + 0x40], rax
add rax, 0x60
mov qword [rbp + 0x38], rax
mov ax, 0x4fc7
xor ax, 0x445f
mov word [rcx], ax
sub rsp, 0x20
call fcn.140096085
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rcx
cmp byte [rax + 0x60], 0
jne 0x14024c78d
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x48]
mov rdx, qword [0x14028d308]
mov r8, qword [rdx]
mov qword [rbp + 0xb0], r8
mov rdx, qword [rdx + 8]
mov qword [rbp + 0xb8], rdx
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rcx, qword [rcx + 8]
mov qword [rax + 8], rcx
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov r8, qword [rbp + 8]
add rsp, 0x20
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0xb0]
mov qword [rbp + 0xd8], rcx
mov rcx, qword [rbp + 0xb8]
mov qword [rbp + 0xe0], rcx
mov rcx, qword [rax]
mov qword [r8], rcx
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
lea rcx, [rbp + 0xc0]
lea rdx, [rbp + 0xd8]
sub rsp, 0x20
call fcn.1400ca2e0
mov rax, qword [rbp + 0x38]
add rsp, 0x20
mov rcx, qword [rbp + 0xc0]
mov qword [rbp - 0x10], rcx
mov rcx, qword [rbp + 0xc8]
mov qword [rbp - 8], rcx
cmp byte [rax], 0
jne 0x14024c78d
mov ecx, 1
mov r8d, 8
sub rsp, 0x20
mov rdx, r8
call fcn.140020645
add rsp, 0x20
mov qword [rbp - 0x28], rax
mov ecx, 0x18
mov edx, 8
sub rsp, 0x20
call fcn.1400370c0
add rsp, 0x20
mov qword [rbp - 0x20], rax
mov word [rbp + 0xd6], 0x5ac
lea rcx, [rbp + 0xd6]
sub rsp, 0x20
call fcn.140096085
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x18], rcx
mov al, byte [rax]
mov cl, 0x8f
xor cl, 0x8f
cmp al, cl
jne 0x14024c6a5
mov rcx, qword [rbp + 0x20]
mov rdx, qword [rbp + 0x28]
mov rax, qword [rbp - 0x18]
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.140039831
mov rcx, qword [rbp + 0x20]
mov rax, qword [rbp - 0x20]
add rsp, 0x20
mov rdx, qword [rcx]
mov rcx, qword [rcx + 8]
mov qword [rax], rdx
mov qword [rax + 8], rcx
mov cx, 0x435d
xor cx, 0x490f
sub rsp, 0x20
call fcn.140096360
mov rcx, qword [rbp - 0x20]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x38]
mov dword [rcx + 0x10], edx
mov al, byte [rax]
mov cl, 0x66
xor cl, 0x66
cmp al, cl
jne 0x14024c6a5
mov cx, 0x6534
xor cx, 0x6f11
sub rsp, 0x20
call fcn.140096360
mov rcx, qword [rbp - 0x20]
add rsp, 0x20
mov edx, eax
mov rax, qword [rbp + 0x38]
mov dword [rcx + 0x14], edx
mov al, byte [rax]
mov cl, 0xc0
xor cl, 0xc0
cmp al, cl
jne 0x14024c6a5
mov eax, dword [0x14027ff80]
xor eax, 0xe4f03329
xor edx, edx
div dword [0x14027ff84]
or eax, 0x6fb2be12
mov ecx, 0xcdc8b82
xor ecx, 0x6b4b2514
and eax, ecx
mov ecx, 0x60940633
xor ecx, 0xfba76fad
and eax, ecx
cmp eax, 0x4cb3c121
jae 0x14024cb38
mov rcx, qword [rbp - 0x20]
mov edx, dword [0x14027ff88]
xor edx, 0xe0e9a2cd
mov r8d, dword [0x14027ff8c]
mov r9d, 0x47ff06c2
xor r9d, 0x47ff06c3
mov eax, edx
add eax, r9d
xor edx, 0xffffffff
or edx, r8d
add edx, eax
mov eax, edx
and eax, 0x57d14377
mov r8d, 0x5084cc78
xor r8d, 0x7558f0f
or edx, r8d
add eax, edx
or eax, eax
xor eax, 0xffffffff
mov edx, 0xe7ad020e
or edx, 0xe7ad020e
xor edx, 0xffffffff
or eax, edx
mov edx, 0x73bfd091
xor edx, 0x8c402f6e
xor eax, edx
mov r8d, 0x26fc39cf
xor r8d, 0xfa1e8630
xor edx, edx
div r8d
mov edx, eax
mov rax, qword [rbp - 0x28]
mov dword [rbp - 0x34], edx
mov qword [rax + 8], rcx
mov cx, 0xeb64
xor cx, 0xebc0
sub rsp, 0x20
call fcn.140096360
mov rcx, qword [rbp + 0x38]
add rsp, 0x20
mov edx, eax
mov eax, dword [rbp - 0x34]
mov dword [rbp - 0x30], edx
cmp byte [rcx], 0
sete cl
mov byte [rbp - 0x29], cl
cmp eax, 0x689e1cc3
jae 0x14024c403
mov al, byte [rbp - 0x29]
test al, 1
jne 0x14024c4d4
jmp 0x14024c6a5
mov r8d, dword [rbp - 0x30]
mov rax, qword [rbp - 0x28]
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp - 0x10]
mov qword [rbp + 0xa0], rdx
mov qword [rbp + 0xa8], rcx
movabs rcx, 0x4430cfc0d65ca189
movabs rdx, 0x4430cfc0d65ca188
xor rcx, rdx
mov qword [rbp + 0x90], rcx
mov qword [rbp + 0x98], rax
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x90]
sub rsp, 0x20
call fcn.1401b7fea
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x40], rcx
cmp byte [rax], 0
jne 0x14024c6a5
mov ax, 0x313b
xor ax, 0x390c
mov word [rbp + 0xd4], ax
lea rcx, [rbp + 0xd4]
sub rsp, 0x20
call fcn.140096085
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x48], rcx
cmp byte [rax], 0
jne 0x14024c6a5
mov rax, qword [rbp - 0x48]
mov rcx, qword [rax]
mov qword [rbp + 0x70], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x78], rax
lea rcx, [rbp + 0x80]
lea rdx, [rbp + 0x70]
sub rsp, 0x20
call fcn.140039831
mov rdx, qword [rbp]
add rsp, 0x20
mov rcx, qword [rbp + 0x80]
mov rax, qword [rbp + 0x88]
mov rdx, qword [rdx]
add rdx, 0x18
mov qword [rbp - 0x58], rdx
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x50]
xor edx, edx
mov r8d, 0x10
sub rsp, 0x20
call sub.msvcrt.dll_memset
mov rcx, qword [rbp - 0x58]
mov rdx, qword [rbp - 0x40]
add rsp, 0x20
lea r8, [rbp + 0x60]
xor eax, eax
mov r9d, eax
lea rax, [rbp + 0x50]
sub rsp, 0x30
mov qword [rsp + 0x20], rax
call fcn.1401b7d64
add rsp, 0x30
mov ecx, eax
mov rax, qword [rbp + 0x38]
mov dword [rbp - 0x4c], ecx
cmp byte [rax], 0
jne 0x14024c6a5
mov eax, dword [rbp - 0x4c]
mov rcx, qword [rbp - 8]
cmp rcx, 0
mov dword [rbp - 0x5c], eax
je 0x14024cb2b
mov eax, dword [rbp - 0x4c]
mov rcx, qword [rbp - 8]
mov rcx, qword [rcx]
or rcx, rcx
movabs rdx, 0xcafe92aec4237131
movabs r8, 0x35016d513bdc8ece
xor rdx, r8
xor rcx, rdx
movabs rdx, 0x4000000000000000
movabs r8, 0x4000000000000000
or rdx, r8
xor rdx, 0xffffffffffffffff
or rcx, rdx
xor rcx, 0xffffffffffffffff
cmp rcx, 0
mov dword [rbp - 0x5c], eax
jne 0x14024cb2b
mov rcx, qword [rbp - 8]
sub rsp, 0x20
call fcn.14001d1d6
mov eax, dword [rbp - 0x4c]
add rsp, 0x20
mov dword [rbp - 0x5c], eax
jmp 0x14024cb2b
mov ecx, dword [0x14027ff90]
or ecx, dword [0x14027ff94]
and ecx, 0x1e5a4cf3
or ecx, 0xa997e787
mov edx, 0xffffffff
xor edx, 0x2a9e29fb
mov eax, ecx
xor eax, edx
and eax, ecx
mov ecx, 0x15d4063a
xor ecx, 0x9f7d8529
cmp eax, ecx
ja 0x14024cb41
mov rcx, qword [rbp - 8]
mov eax, dword [0x14027ff98]
xor edx, edx
div dword [0x14027ff9c]
sub eax, 0x6b740059
add eax, 0xeeb2d41e
add eax, 0x6b740059
mov r8d, 0x48ada754
xor r8d, 0x8fa57478
xor edx, edx
div r8d
mov edx, eax
mov eax, edx
and eax, 0xc867bf68
mov r8d, 0xf775a79f
xor r8d, 0x3f1218f7
xor edx, r8d
or eax, edx
cmp rcx, 0
sete cl
mov byte [rbp - 0x5d], cl
cmp eax, 0x27a874cd
je 0x14024c6e1
mov al, byte [rbp - 0x5d]
test al, 1
jne 0x14024c78d
jmp 0x14024c754
mov rcx, qword [rbp - 8]
movabs rax, 0x4000000000000000
and rax, qword [rcx]
cmp rax, 0
jne 0x14024c78d
mov rcx, qword [rbp - 8]
sub rsp, 0x20
call fcn.14001d1d6
mov rax, qword [rbp + 0x38]
add rsp, 0x20
cmp byte [rax], 0
je 0x14024cb0a
mov eax, dword [0x14027ffa0]
mov ecx, dword [0x14027ffa4]
xor ecx, 0x5eeb188
xor eax, ecx
or eax, 0xe06c86cf
and eax, 0x7cb4954a
mov edx, eax
xor edx, 0xffffffff
and edx, 0xe17c9e5b
mov r8d, 0xffffffff
xor r8d, 0xe17c9e5b
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xe17c9e5b
or eax, 0xe17c9e5b
imul eax, edx
add eax, ecx
cmp eax, 0x7bac0676
jae 0x14024cb4a
mov eax, dword [0x14027ffa8]
mov edx, dword [0x14027ffac]
mov ecx, eax
and ecx, edx
shl ecx, 1
xor eax, edx
add eax, ecx
xor eax, 0x5f33cd1b
or eax, 0x6a86a37c
mov ecx, 0x797b4118
xor ecx, 0xfe67401b
and ecx, eax
xor ecx, 0xffffffff
add eax, 0x871c0103
mov edx, 0x6b4f9f50
xor edx, 0x6b4f9f51
add eax, edx
add eax, ecx
mov dword [rbp - 0x6c], eax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
add rsp, 0x20
mov rcx, rax
mov eax, dword [rbp - 0x6c]
mov rcx, qword [rcx + 0x10]
mov rcx, qword [rcx]
mov qword [rbp - 0x68], rcx
mov cx, word [rcx + 0x12]
mov dx, 0x699d
xor dx, 0x699c
cmp cx, dx
setg cl
mov byte [rbp - 0x5e], cl
cmp eax, 0x7288b997
jb 0x14024cb4a
mov al, byte [rbp - 0x5e]
test al, 1
jne 0x14024c888
jmp 0x14024cafd
mov rax, qword [rbp - 0x68]
mov rax, qword [rax + 0x18]
mov eax, dword [rax + 8]
mov ecx, 0xd15626d4
xor ecx, 0x5536f52
cmp eax, ecx
jne 0x14024cafd
mov eax, dword [0x14027ffb0]
mov ecx, 0xb196f17d
xor ecx, 0x8ef96765
xor eax, ecx
and eax, dword [0x14027ffb4]
mov ecx, 0xd9224684
xor edx, edx
div ecx
mov ecx, 0x92c79599
xor edx, edx
div ecx
and eax, 0x627ba403
cmp eax, 0x5a9d2080
ja 0x14024cb53
mov rax, qword [rbp + 0x38]
mov esi, dword [0x14027ffb8]
mov r11d, dword [0x14027ffbc]
mov ecx, 0x2eb8de49
xor ecx, 0xd14721b6
mov edx, esi
xor edx, ecx
mov ecx, 0xdc3e4732
xor ecx, 0x23c1b8cd
mov r9d, r11d
xor r9d, ecx
mov r8d, 0xffffffff
xor r8d, 0x91e11e8d
mov ecx, edx
and ecx, 0x91e11e8d
and esi, r8d
mov r10d, r9d
and r10d, 0x91e11e8d
and r11d, r8d
or ecx, esi
or r10d, r11d
xor ecx, r10d
or edx, r9d
mov r9d, 0x30264e4
xor r9d, 0xfcfd9b1b
xor edx, r9d
or r8d, 0x91e11e8d
and edx, r8d
or ecx, edx
mov edx, ecx
xor edx, 0xca4faaf7
xor edx, 0xffffffff
and edx, 0xca4faaf7
shl edx, 1
mov r8d, 0xde12df08
xor r8d, 0x145d75ff
sub edx, r8d
sub ecx, edx
sub ecx, 0x40f826ef
mov r8d, 0x2693c37b
xor r8d, 0x69370ba1
mov edx, ecx
and edx, r8d
shl edx, 1
add ecx, 0x4fa4c8da
sub ecx, edx
mov dword [rbp - 0x74], ecx
mov ecx, 0x5848c597
xor ecx, 0xb6d0ff7d
mov dword [rbp - 0x78], ecx
mov byte [rax], 0
sub rsp, 0x20
call fcn.140240ad1
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.1400cdd40
mov rdx, qword [rbp + 0x38]
mov ecx, dword [rbp - 0x78]
mov eax, dword [rbp - 0x74]
add rsp, 0x20
mov dl, byte [rdx]
xor r8d, r8d
xor r8b, 0
cmp dl, r8b
sete dl
mov byte [rbp - 0x6d], dl
cmp eax, ecx
je 0x14024c8e1
mov al, byte [rbp - 0x6d]
test al, 1
jne 0x14024ca0c
jmp 0x14024cb2b
mov eax, dword [0x14027ffc0]
xor eax, 0xba2492df
xor edx, edx
div dword [0x14027ffc4]
mov ecx, eax
mov edx, 0xb8c3c01c
xor edx, 0x473c3fe3
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xdd6f65c2
or eax, edx
mov edx, 0x2f1a5beb
xor edx, 0xf2753e29
mov r8d, 0xd06eabb6
xor r8d, 0xd01ce74
and edx, r8d
xor edx, 0xffffffff
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
and eax, eax
xor eax, 0xffffffff
mov ecx, 0xa2933deb
and ecx, 0xa2933deb
mov edx, 0x4d5d155f
xor edx, 0xb2a2eaa0
xor ecx, edx
and eax, ecx
xor eax, 0xffffffff
xor eax, 0x21ef99c
cmp eax, 0xb4f0f71c
jbe 0x14024cb5c
mov eax, dword [0x14027ffc8]
mov ecx, 0x8f75fc20
xor ecx, 0x789a09f8
xor eax, ecx
mov edx, dword [0x14027ffcc]
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, edx
add ecx, eax
xor eax, eax
sub eax, ecx
or eax, 0xb36d28b7
sub eax, 0x915d4f6c
or eax, 0x5cdc6d19
mov dword [rbp - 0x7c], eax
sub rsp, 0x20
call fcn.140240b30
mov eax, dword [rbp - 0x7c]
add rsp, 0x20
cmp eax, 0x1514f70c
jb 0x14024cb5c
jmp 0x14024cafd
mov rax, qword [rbp + 0x38]
cmp byte [rax], 0
jne 0x14024cb2b
mov ecx, 0x9f0
sub rsp, 0x20
call fcn.140096360
mov rdx, qword [rbp + 0x38]
add rsp, 0x20
mov ecx, eax
cmp byte [rdx], 0
cmove eax, ecx
mov dword [rbp - 0x5c], eax
mov eax, dword [rbp - 0x5c]
lea rsp, [rbp + 0xe8]
pop rsi
pop rbp
ret
stc
insd dword [rdi], dx
jo 0x14024cb62
jmp 0x14024c403
out 0xc0, al
xchg esi, eax
jmp 0x14024c6e1
out 0xa3, eax
insb byte [rdi], dx
jmp 0x14024c7e8
lodsd eax, dword [rsi]
mov al, 0xeb
push 0xffffffffffffffe9
test ebp, edi
invalid
mov word [rbx + 0x3fe95f68], cs
invalid