Function at 0x140039870
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x30
lea rdx, [0x140085060]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
mov dword [rsp + 0x24], 0x5000
lea rcx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_SetThreadStackGuarantee]
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov r8, qword [0x141dc0008]
lea rdx, [0x141dbaba0]
mov rcx, rax
call r8
mov eax, dword [0x141dc5e28]
sub eax, dword [0x141dc5e2c]
imul eax, eax, 0x27c5fb9c
and eax, 0xd5e3d214
cmp eax, 0xcd4a905a
je 0x14003990d
mov eax, dword [0x141dc5e30]
imul eax, dword [0x141dc5e34]
and eax, 0x9d0c8ad0
imul rax, rax, 0x2976e809
shr rax, 0x3c
imul esi, eax, 0x47376207
movzx eax, byte [0x141ddc4f8]
mov edx, 0x38
xor ecx, ecx
call fcn.1400c0a10
cmp esi, 0x8ae4c90d
jbe 0x140039922
movzx eax, byte [0x141ddc4f8]
mov edx, 0x38
xor ecx, ecx
call fcn.1400c0a10
jmp 0x1400398cf
mov rcx, rax
nop word cs:[rax + rax]
mov eax, dword [0x141dc5e38]
xor eax, dword [0x141dc5e3c]
xor eax, 0x91624180
or eax, 0x689dbe67
cmp eax, 0x89721635
ja 0x140039930
test rcx, rcx
je 0x1400399bd
mov qword [rcx], 1
mov qword [rcx + 8], 1
nop word cs:[rax + rax]
mov eax, dword [0x141dc5e58]
add eax, dword [0x141dc5e5c]
or eax, 0x10800402
xor eax, 0x20000100
and eax, 0x30a0a502
cmp eax, 0x435280b8
je 0x140039970
mov eax, dword [0x141dc5e60]
xor eax, dword [0x141dc5e64]
and eax, 0x3f938c63
add eax, 0xa6f21b0d
or eax, 0xb3387582
cmp eax, 0x528a4552
jae 0x140039a3f
jmp 0x140039a6f
mov eax, dword [0x141dc5e40]
xor eax, dword [0x141dc5e44]
imul eax, eax, 0x1cf1c496
add eax, 0x2657a586
or eax, 0x12ed57b7
cmp eax, 0xd49da167
jb 0x140039a04
mov eax, dword [0x141dc5e48]
add eax, dword [0x141dc5e4c]
or eax, 0x10aeb562
add eax, 0x906efa74
and eax, 0x881529d5
ud2
ud2
ud2
mov eax, dword [0x141dc5e68]
xor edx, edx
div dword [0x141dc5e6c]
and eax, 0xbd88c0e5
imul edx, eax, 0x831f2b54
mov qword [rcx + 0x10], 0
mov rax, qword [0x141ddc4c0]
cmp edx, 0xbc865ac3
jbe 0x140039a80
mov qword [rcx + 0x10], 0
mov rax, qword [0x141ddc4c0]
jmp 0x140039a3f
mov edx, dword [0x141dc5e70]
sub edx, dword [0x141dc5e74]
xor edx, 0x20090
and edx, 0x4b430890
cmp edx, 0x1054794d
je 0x140039a80
cmp rax, 0xffffffffffffffff
je 0x140039a3d
lea rdx, [rax + 1]
lock cmpxchg qword [0x141ddc4c0], rdx
sete r8b
nop word [rax + rax]
mov r9d, dword [0x141dc5e78]
mov r10d, dword [0x141dc5e7c]
add r9d, r10d
add r9d, 0x9041be9a
xor r9d, 0xc5010a0
or r9d, 0xf1af4341
cmp r9d, 0x1b2571cd
je 0x140039ac0
test r8b, r8b
je 0x140039a80
mov qword [rcx + 0x28], rdx
mov byte [rcx + 0x30], 0
call fcn.140085ce0
call fcn.140025cf0
mov eax, dword [0x141ddc448]
cmp eax, 3
jne 0x140039b41
nop word cs:[rax + rax]
mov eax, dword [0x141dc5e90]
imul eax, dword [0x141dc5e94]
or eax, 0xf76b87a1
cmp eax, 0xb4bc669
je 0x140039b20
xor eax, eax
add rsp, 0x30
pop rsi
ret
mov eax, 0xd5139d59
nop word cs:[rax + rax]
mov ecx, dword [0x141dc5e80]
xor ecx, dword [0x141dc5e84]
imul rcx, rax
shr rcx, 0x3f
xor ecx, 0xce0341
or ecx, 0xfe314cb6
cmp ecx, 0x946b33cf
je 0x140039b50
mov byte [rsp + 0x23], 1
lea rax, [rsp + 0x23]
mov qword [rsp + 0x28], rax
lea rcx, [0x141ddc448]
lea r9, [0x141dba588]
lea r8, [rsp + 0x28]
xor edx, edx
call fcn.1400fbc40
nop word cs:[rax + rax]
mov eax, dword [0x141dc5e88]
xor eax, dword [0x141dc5e8c]
imul rax, rax, 0x2b631fa7
shr rax, 0x3d
imul eax, eax, 0xe1dfb4dc
add eax, 0x4748074
cmp eax, 0xe2599101
jb 0x140039bb0
jmp 0x140039b20