Function at 0x140038aa0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
push rax
mov rbp, rsp
mov eax, dword [0x141dc7d78]
or eax, dword [0x141dc7d7c]
imul eax, eax, 0x1d8b6bfe
add eax, 0x3789a174
cmp eax, 0x155ec35d
jb 0x140038b1c
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov rbx, rsp
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov r14, rsp
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
lea rdx, [0x1400870e0]
xor esi, esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
add rsp, 0x20
test sil, sil
je 0x140038b5f
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
mov eax, 0x10
call fcn.1400f1350
sub rsp, rax
sub rsp, 0x20
lea rdx, [0x1400870e0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
add rsp, 0x20
jmp 0x140038ace
mov qword [rbp], rbx
mov eax, dword [0x141dc7d80]
or eax, dword [0x141dc7d84]
or eax, 0xe9ea015f
add eax, 0x90e1853e
imul rax, rax, 0x6294a4db
shr rax, 0x3d
cmp eax, 0x566ac6e3
jbe 0x140038baf
mov dword [rdi], 0x5000
sub rsp, 0x20
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetThreadStackGuarantee]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
add rsp, 0x20
mov rax, qword [0x141dc2008]
mov r12, qword [sym.imp.KERNEL32.dll_SetThreadStackGuarantee]
mov r13, qword [sym.imp.KERNEL32.dll_GetCurrentThread]
xor esi, esi
nop
mov dword [rdi], 0x5000
sub rsp, 0x20
mov rcx, rdi
call r12
call r13
add rsp, 0x20
mov r15, qword [0x141dc2008]
test sil, sil
jne 0x140038bc0
mov rbx, rax
mov eax, dword [0x141dc7d88]
imul eax, dword [0x141dc7d8c]
add eax, 0xfd3d52a7
and eax, 0xfb76946c
imul eax, eax, 0x6ce520ca
cmp eax, 0xba6efab0
jb 0x140038c57
mov eax, dword [0x141dc7d90]
mov ecx, dword [0x141dc7d94]
lea esi, [rax + rcx]
add esi, 0x2b5e6011
sub rsp, 0x20
lea rdx, [0x141dbbba0]
mov rcx, rbx
call r15
add rsp, 0x20
movzx eax, byte [0x141dde6f8]
sub rsp, 0x20
mov edx, 0x38
xor ecx, ecx
call fcn.1400c29b0
add rsp, 0x20
cmp esi, 0x8747a7bf
jbe 0x140038c89
sub rsp, 0x20
lea rdx, [0x141dbbba0]
mov rcx, rbx
call r15
add rsp, 0x20
movzx eax, byte [0x141dde6f8]
sub rsp, 0x20
mov edx, 0x38
xor ecx, ecx
call fcn.1400c29b0
add rsp, 0x20
jmp 0x140038c0a
mov rcx, rax
test rax, rax
je 0x140038e7b
xor eax, eax
test al, al
mov rsi, qword [rbp]
je 0x140038cae
mov qword [rcx], 1
mov qword [rcx + 8], 1
mov eax, 0x8bf92f67
nop word cs:[rax + rax]
mov edx, dword [0x141dc7db0]
or edx, dword [0x141dc7db4]
shr edx, 1
imul rdx, rax
shr rdx, 0x3c
and edx, 0xfffffffc
mov qword [rcx], 1
mov qword [rcx + 8], 1
cmp edx, 0x65a68caa
je 0x140038cc0
mov eax, dword [0x141dc7db8]
imul eax, dword [0x141dc7dbc]
imul rdx, rax, 0x217003fd
shr rdx, 0x20
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0x1e
cmp eax, 0x3280aaf3
je 0x140038cf0
mov qword [rcx + 0x10], 0
mov r8, qword [0x141dde6c0]
jmp 0x140038d40
mov r8, rax
test r9b, r9b
jne 0x140038de8
nop word cs:[rax + rax]
mov eax, dword [0x141dc7dc0]
imul eax, dword [0x141dc7dc4]
xor eax, 0x86b03d51
add eax, 0xb73eb944
cmp eax, 0x6802e9e7
ja 0x140038d40
cmp r8, 0xffffffffffffffff
je 0x140038e47
mov eax, dword [0x141dc7dc8]
xor edx, edx
div dword [0x141dc7dcc]
xor eax, 0xe5100082
or eax, 0x12edff6d
imul rax, rax, 0x480825f9
shr rax, 0x3e
cmp eax, 0xbeda7b64
je 0x140038dd6
mov r10d, dword [0x141dc7dd0]
xor r10d, dword [0x141dc7dd4]
xor r10d, 0x12000908
or r10d, 0x414cb020
and r10d, 0x534cfbea
lea rdx, [r8 + 1]
mov rax, r8
lock cmpxchg qword [0x141dde6c0], rdx
sete r9b
cmp r10d, 0xa8481e82
jne 0x140038d29
lea rdx, [r8 + 1]
mov rax, r8
lock cmpxchg qword [0x141dde6c0], rdx
jmp 0x140038d92
mov qword [rcx + 0x28], rdx
mov byte [rcx + 0x30], 0
sub rsp, 0x20
call fcn.140087d10
call fcn.140024fe0
add rsp, 0x20
mov eax, dword [0x141dde648]
cmp eax, 3
jne 0x140038e20
xor eax, eax
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, dword [0x141dc7de0]
or eax, dword [0x141dc7de4]
imul eax, eax, 0x37eab308
and eax, 0x6ff934e0
cmp eax, 0x6810e8d4
jne 0x140038f0a
jmp 0x140038f2d
mov eax, dword [0x141dc7dd8]
xor eax, dword [0x141dc7ddc]
or eax, 0x73ff3b1a
add eax, 0xf0f01985
cmp eax, 0xf0feeeb1
jbe 0x140038e66
ud2
xor eax, eax
nop dword [rax + rax]
ud2
mov eax, dword [0x141dc7d98]
sub eax, dword [0x141dc7d9c]
mov ecx, 0x9a615f33
imul rcx, rax
shr rcx, 0x3f
or ecx, 0x9a44d58c
xor ecx, 0x792b0d11
cmp ecx, 0x3bb51e68
jae 0x140038eb0
ud2
mov eax, dword [0x141dc7da0]
xor eax, dword [0x141dc7da4]
imul eax, eax, 0x9e89b75f
or eax, 0x4ffe067f
imul rax, rax, 0x148ff579
shr rax, 0x3b
ud2
mov eax, dword [0x141dc7de8]
imul eax, dword [0x141dc7dec]
imul eax, eax, 0x1081ac06
add eax, 0xde2da042
mov byte [r14], 1
cmp eax, 0x6baef744
jbe 0x140038f33
mov byte [r14], 1
jmp 0x140038f0a
mov qword [rsi], r14
sub rsp, 0x20
lea rcx, [0x141dde648]
lea r9, [0x141dbb588]
xor edx, edx
mov r8, rsi
call fcn.1400fcc30
add rsp, 0x20
jmp 0x140038e0d