Function at 0x140363300
Capabilities:
Encode data using xor
Execute anti-debugging instructions

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x4e8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x460], 0xfffffffffffffffe
mov rdi, rdx
mov rbx, rcx
mov qword [rbp + 0x450], 0
mov dword [rsp + 0x28], 0x79407804
mov dword [rsp + 0x20], 0x11eb72f
mov ecx, 1
mov edx, 1
xor r8d, r8d
mov r9d, 0xe7998a23
call fcn.140364ea0
cmp rbx, 0x12345678
je 0x140363397
mov qword [rbp + 0x3f8], rax
call fcn.140362fa0
test rdi, rdi
sets al
cmp rdi, 0x10000
setb sil
or sil, al
rdtsc
mov r15, rdx
mov r14, rax
je 0x1403633e1
xor r13d, r13d
jmp 0x1403633e8
cmp qword [0x14054b67c], 0x33c0
jne 0x14036392b
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0x2e8cc297
mov dword [rsp + 0x30], 0x4ac384f1
xor ecx, ecx
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140364bb0
add rax, 0x33c0
mov qword [0x14054b67c], rax
jmp 0x14036392b
cmp byte [rdi], 0
sete r13b
mov r12, rbx
test rbx, rbx
jne 0x140363410
mov dword [rsp + 0x20], 0x761f8008
xor ecx, ecx
xor edx, edx
mov r8d, 0x199c4fd8
mov r9d, 0xecc6b152
call fcn.140364ef0
mov r12, rax
movzx eax, byte [0x1405673a8]
mov ecx, eax
xor cl, 0xfe
test cl, al
mov byte [rbp + 0x45f], sil
je 0x14036346a
mov dword [rsp + 0x28], 0x1fa0dde2
mov dword [rsp + 0x20], 0x729b2e7f
mov ecx, 1
xor edx, edx
xor r8d, r8d
mov r9d, 0x7ac1e53b
call fcn.140364d90
test rax, rax
je 0x14036346a
test sil, sil
je 0x1403634ac
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
mov r8d, edi
jmp 0x14036350b
test r12, r12
je 0x140363523
mov eax, dword [r12 + 0x3c]
test rax, rax
je 0x140363523
cmp dword [r12 + rax], 0x4550
jne 0x140363523
cmp dword [r12 + rax + 0x88], 0
je 0x1403634a5
cmp dword [r12 + rax + 0x8c], 0
jne 0x140363523
xor esi, esi
jmp 0x140363540
mov qword [rbp - 0x20], 0
xor ecx, ecx
test rdi, rdi
je 0x1403634ec
mov edx, 1
xor r8d, r8d
nop word cs:[rax + rax]
xor r9d, r9d
cmp byte [rdi + rcx], 0
setne r9b
movzx r8d, r8b
cmove r8d, edx
add rcx, r9
test r8b, 1
je 0x1403634d0
mov word [rbp - 0x20], cx
inc ecx
mov word [rbp - 0x1e], cx
mov qword [rbp - 0x18], rdi
lea rdx, [rbp - 0x20]
lea r9, [rbp + 0x450]
mov rcx, rbx
xor r8d, r8d
call qword [0x1404ee420]
cmp eax, 0xc0000138
jne 0x140363523
mov qword [rbp + 0x450], 0
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14040c5e0
mov sil, 1
test r13b, r13b
je 0x140363656
shl r15, 0x20
or r14, r15
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14040c5e0
rdtsc
shl rdx, 0x20
or rdx, rax
sub rdx, r14
cmp qword [0x14054b608], 0
je 0x14036357a
mov rax, qword [0x14054b608]
cmp rax, rdx
jae 0x140363581
mov qword [0x14054b608], rdx
cmp qword [rbp + 0x450], 0
setne al
sete cl
mov edx, esi
xor dl, 1
and cl, dl
and sil, al
or sil, cl
and dl, al
or dl, sil
movzx esi, byte [rbp + 0x45f]
jne 0x1403638d3
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x58], 0x9e020f6c
mov dword [rsp + 0x50], 0xf7a90784
mov dword [rsp + 0x48], 0x654debd3
mov qword [rsp + 0x40], 0
xor ecx, ecx
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.140364dd0
cmp eax, 0x4750412d
je 0x1403638d3
mov dword [rsp + 0x28], 0x1fa0dde2
mov dword [rsp + 0x20], 0x729b2e7f
mov ecx, 1
xor edx, edx
xor r8d, r8d
mov r9d, 0x7ac1e53b
call fcn.140364d90
test rax, rax
je 0x1403638d3
inc qword [0x14054b5a8]
cmp rdi, 0xffff
ja 0x14036373c
mov r8d, dword [0x1405640a8]
add r8d, edi
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
jmp 0x1403637d1
mov dword [rsp + 0x28], 0x1fa0dde2
mov dword [rsp + 0x20], 0x729b2e7f
xor r12d, r12d
xor ecx, ecx
xor edx, edx
mov r8, rbx
mov r9d, 0x7ac1e53b
call fcn.140364d90
test rax, rax
je 0x140363540
nop word cs:[rax + rax]
mov r13d, r12d
movzx ecx, word [rax + r13*2]
test ecx, ecx
je 0x1403636ab
cmp ecx, 0x2e
je 0x1403636ab
mov byte [rbp + r13 - 0x20], cl
inc r12d
jmp 0x140363690
mov eax, 0x400
sub eax, r12d
cmp eax, 2
jb 0x140363540
mov dword [rbp + 0x404], eax
mov qword [rbp + 0x448], 0xf
mov qword [rbp + 0x440], 1
mov word [rbp + 0x430], 0x2e
cmp byte [rbp + 0x45f], 0
je 0x14036384c
mov rax, qword [rbp + 0x440]
mov rcx, qword [rbp + 0x448]
cmp rcx, rax
jne 0x140363946
mov ecx, 1
mov edx, 1
mov r8d, 0x3e215159
call fcn.140364580
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x430]
mov edx, 1
mov r9, rax
call fcn.140088de0
jmp 0x1403639a4
mov qword [rbp + 0x430], 0
xor ecx, ecx
test rdi, rdi
je 0x140363792
mov edx, 1
xor r8d, r8d
nop word cs:[rax + rax]
xor r9d, r9d
cmp byte [rdi + rcx], 0
setne r9b
mov r10, rcx
movzx r8d, r8b
cmove r8d, edx
not r10
xor rcx, r9
not r9
and r9, r10
or r9, rcx
not r9
lea rcx, [rcx + r9*2]
test r8b, 1
je 0x140363760
mov word [rbp + 0x430], cx
mov edx, ecx
xor edx, 1
add ecx, ecx
and ecx, 2
mov r8d, edx
xor r8d, ecx
and ecx, edx
lea ecx, [r8 + rcx*2]
mov word [rbp + 0x432], cx
mov qword [rbp + 0x438], rdi
lea rdx, [rbp + 0x430]
lea r9, [rbp + 0x450]
mov rcx, rbx
xor r8d, r8d
call qword [0x1404ee420]
cmp eax, 0xc0000142
je 0x1403637e9
cmp eax, 0xc0000138
jne 0x14036389e
mov qword [rbp + 0x450], 0
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x14054b540]
inc qword [0x14054b5e0]
mov rdx, qword [0x14054b5b0]
mov r8, rdx
movabs r9, 0x7ffffffffffffffe
xor r9, rdx
and r9, rdx
not edx
and edx, 1
and r8, 0xfffffffffffffffe
or r8, rdx
lea rdx, [r8 + r9*2]
mov qword [0x14054b5b0], rdx
lea rax, [rcx + rax*8]
add rax, 0x78
jmp 0x1403638d0
mov rcx, rdi
mov edx, 0xa328784
mov r8d, 0x513b5162
mov r9d, 0xdef09f6e
call fcn.1400ac7d0
mov rcx, qword [rbp + 0x440]
mov rdx, qword [rbp + 0x448]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x140363960
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x430]
mov rdx, rax
mov r9, rdi
call fcn.140088de0
jmp 0x140363b79
cmp qword [rbp + 0x450], 0
je 0x1403637f4
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x14054b540]
inc qword [0x14054b5c8]
lea rax, [rcx + rax*8]
add rax, 0x90
inc qword [rax]
mov dword [rsp + 0x28], 0x35a69d31
mov dword [rsp + 0x20], 0x3044cc03
mov ecx, 1
mov edx, 1
mov r8, qword [rbp + 0x3f8]
mov r9d, 0x80c7c371
call fcn.1403650c0
movzx eax, sil
xor eax, 0xc0000139
xor ecx, ecx
cmp qword [rbp + 0x450], 0
cmove ecx, eax
mov edx, 0xf7a90784
mov r8d, 0x37807ae6
mov r9d, 0xad63ca8d
call fcn.140365110
mov rax, qword [rbp + 0x450]
add rsp, 0x4e8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rdx, [rax + 1]
mov qword [rbp + 0x440], rdx
cmp rcx, 0x10
jb 0x140363997
mov rcx, qword [rbp + 0x430]
jmp 0x14036399e
mov r8, rcx
xor r8, rax
mov r9, rax
and r9, rcx
lea r9, [r8 + r9*2]
mov r8, r9
mov qword [rbp + 0x428], r9
mov qword [rbp + 0x440], r9
cmp rdx, 0x10
jb 0x140363ac4
mov r12, qword [rbp + 0x430]
jmp 0x140363acb
lea rcx, [rbp + 0x430]
mov word [rcx + rax], 0x23
movzx edx, di
mov r12d, 1
lea r9, [rbp + 0x3f4]
movabs r8, 0xcccccccccccccccd
nop
mov rcx, rdx
mov rax, rdx
mul r8
shr rdx, 3
lea eax, [rdx + rdx]
lea eax, [rax + rax*4]
mov r10d, ecx
sub r10d, eax
add r10b, byte [0x140564730]
or r10b, 0x30
mov byte [r9], r10b
cmp rcx, 0xa
jb 0x1403639f5
inc r12
dec r9
jmp 0x1403639c0
mov qword [rbp + 0x418], 0
mov qword [rbp + 0x420], 0xf
mov byte [rbp + 0x408], 0
test r12, r12
je 0x140363a50
cmp r12, 0xf
jbe 0x140363a2e
lea rcx, [rbp + 0x408]
mov rdx, r12
call fcn.140088500
jmp 0x140363a50
mov qword [rbp + 0x418], r12
lea rcx, [rbp + 0x408]
mov rdx, r9
mov r8, r12
call fcn.14040bf30
mov byte [rbp + r12 + 0x408], 0
mov r8, qword [rbp + 0x418]
cmp qword [rbp + 0x420], 0x10
jb 0x140363a6a
mov r9, qword [rbp + 0x408]
jmp 0x140363a71
lea r9, [rbp + 0x408]
mov rcx, qword [rbp + 0x440]
mov rax, qword [rbp + 0x448]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x140363aa0
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x430]
mov rdx, r8
call fcn.140088de0
jmp 0x140363b08
lea r10, [rcx + r8]
mov rdx, r10
mov qword [rbp + 0x428], r10
mov qword [rbp + 0x440], r10
cmp rax, 0x10
jb 0x140363aea
mov r12, qword [rbp + 0x430]
jmp 0x140363af1
lea r12, [rbp + 0x430]
add rcx, r12
mov rdx, rdi
mov r8, rax
call fcn.14040bf30
mov rax, qword [rbp + 0x428]
mov byte [r12 + rax], 0
jmp 0x140363b79
lea r12, [rbp + 0x430]
add rcx, r12
mov rdx, r9
call fcn.14040bf30
mov rax, qword [rbp + 0x428]
mov byte [r12 + rax], 0
mov rax, qword [rbp + 0x420]
cmp rax, 0x10
jb 0x140363b79
mov rcx, qword [rbp + 0x408]
mov rdx, rax
xor rdx, 1
mov r8, rax
not r8
movabs r9, 0x7ffffffffffffffe
and r9, r8
or r9, rdx
not r9
lea rdx, [rdx + r9*2]
cmp rdx, 0x1000
jb 0x140363b68
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x140363c6f
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0xa87d350
mov r9d, 0xa69e0f38
call fcn.1400a9560
mov rax, qword [rbp + 0x440]
mov ecx, dword [rbp + 0x404]
cmp rax, rcx
jae 0x140363c06
cmp qword [rbp + 0x448], 0x10
jb 0x140363ba2
mov rdx, qword [rbp + 0x430]
jmp 0x140363ba9
lea rdx, [rbp + 0x430]
lea rcx, [r13 - 0x20]
add rcx, rbp
xor r8d, r8d
test rax, rax
je 0x140363bdd
nop dword [rax]
movzx r9d, byte [rdx + r8]
mov byte [rcx + r8], r9b
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
cmp rax, r8
ja 0x140363bc0
mov eax, r8d
mov byte [rcx + rax], 0
mov qword [rbp + 0x408], 0
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x408]
call fcn.1403620c0
mov qword [rbp + 0x450], rax
mov rax, qword [rbp + 0x448]
cmp rax, 0x10
jb 0x140363540
mov rcx, qword [rbp + 0x430]
mov rdx, rax
xor rdx, 1
mov r8d, eax
and r8d, 1
lea rdx, [rdx + r8*2]
cmp rdx, 0x1000
jb 0x140363c54
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x140363c6a
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0xa87d350
mov r9d, 0xa69e0f38
call fcn.1400a9560
jmp 0x140363540
call fcn.1403c3cac
call fcn.1403c3cac
int3