Function at 0x14035e7d0
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 + 0x20], 0xb0c0a3ad
xor ecx, ecx
mov edx, 1
mov r8d, 0x2dd56673
mov r9d, 0x5214ceab
call fcn.140361380
cmp rbx, 0x12345678
je 0x14035e85f
mov qword [rbp + 0x3f8], rax
call fcn.14035e3d0
test rdi, rdi
sets al
cmp rdi, 0x10000
setb sil
or sil, al
rdtsc
mov r15, rdx
mov r14, rax
je 0x14035e8cd
xor r13d, r13d
jmp 0x14035e8d4
mov rax, qword [0x14055c400]
add rax, qword [0x14054121c]
cmp rax, 0x33c0
jne 0x14035edd4
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x40], 0x660033e8
mov dword [rsp + 0x38], 0xc8220f6b
mov dword [rsp + 0x30], 0xafb2d788
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.1403620a0
mov rcx, rax
xor rcx, 0x33c0
and eax, 0x33c0
lea rax, [rcx + rax*2]
mov qword [0x14054121c], rax
jmp 0x14035edd4
cmp byte [rdi], 0
sete r13b
mov r12, rbx
test rbx, rbx
jne 0x14035e8f7
mov ecx, 1
xor edx, edx
mov r8d, 0x5b82d961
mov r9d, 0x860a0596
call fcn.1403610e0
mov r12, rax
movzx eax, byte [0x14055f190]
mov ecx, eax
not cl
xor al, 1
and cl, 0xfe
or cl, al
cmp cl, 0xff
mov byte [rbp + 0x45f], sil
je 0x14035e950
mov dword [rsp + 0x20], 0xb0c0a3ad
xor ecx, ecx
xor edx, edx
mov r8d, 0x2dd56673
mov r9d, 0x5214ceab
call fcn.140361380
test rax, rax
je 0x14035e950
test sil, sil
je 0x14035e996
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
mov r8d, edi
jmp 0x14035ea0f
test r12, r12
je 0x14035ea27
mov eax, dword [r12 + 0x3c]
test rax, rax
je 0x14035ea27
cmp dword [r12 + rax], 0x4550
jne 0x14035ea27
cmp dword [r12 + rax + 0x88], 0
je 0x14035e98f
cmp dword [r12 + rax + 0x8c], 0
jne 0x14035ea27
xor esi, esi
jmp 0x14035ea44
mov qword [rbp - 0x20], 0
xor ecx, ecx
test rdi, rdi
je 0x14035e9e7
xor edx, edx
jmp 0x14035e9d5
mov edx, 1
mov r8b, r9b
add rcx, r8
mov r8d, edx
not r8b
mov r9d, edx
xor r9b, 1
and r8b, 0xfe
or r8b, r9b
cmp r8b, 0xff
jne 0x14035e9e7
xor r8d, r8d
cmp byte [rdi + rcx], 0
setne r9b
je 0x14035e9b0
movzx edx, dl
jmp 0x14035e9b5
mov word [rbp - 0x20], cx
mov edx, ecx
xor edx, 1
and ecx, 1
lea ecx, [rdx + rcx*2]
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 [case.0x140303ece.0]
cmp eax, 0xc0000138
jne 0x14035ea27
mov qword [rbp + 0x450], 0
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14040d340
mov sil, 1
test r13b, r13b
je 0x14035eb35
shl r15, 0x20
or r14, r15
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14040d340
rdtsc
shl rdx, 0x20
or rdx, rax
sub rdx, r14
cmp qword [0x1405411a8], 0
je 0x14035ea7e
mov rax, qword [0x1405411a8]
cmp rax, rdx
jae 0x14035ea85
mov qword [0x1405411a8], rdx
cmp qword [rbp + 0x450], 0
setne al
sete cl
mov edx, esi
not dl
and dl, al
xor cl, sil
or cl, dl
jne 0x14035ed71
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x50], 0xc609cf48
mov dword [rsp + 0x48], 0x5bf8bf7f
mov qword [rsp + 0x40], 0
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.140361220
cmp eax, 0x4750412d
je 0x14035ed71
mov dword [rsp + 0x20], 0xb0c0a3ad
xor ecx, ecx
xor edx, edx
mov r8d, 0x2dd56673
mov r9d, 0x5214ceab
call fcn.140361380
test rax, rax
je 0x14035ed71
inc qword [0x140541148]
cmp rdi, 0xffff
ja 0x14035ec27
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
mov r8d, edi
jmp 0x14035ec99
mov dword [rsp + 0x28], 0x8045bedd
mov dword [rsp + 0x20], 0x4167e76a
xor r12d, r12d
mov ecx, 1
xor edx, edx
xor r8d, r8d
mov r9, rbx
call fcn.1403611e0
test rax, rax
je 0x14035ea44
nop word cs:[rax + rax]
mov r13d, r12d
movzx ecx, word [rax + r13*2]
test ecx, ecx
je 0x14035eb8b
cmp ecx, 0x2e
je 0x14035eb8b
mov byte [rbp + r13 - 0x20], cl
inc r12d
jmp 0x14035eb70
mov eax, 0x400
sub eax, r12d
cmp eax, 2
jb 0x14035ea44
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 0x14035ecea
mov rax, qword [rbp + 0x440]
mov rcx, qword [rbp + 0x448]
cmp rcx, rax
jne 0x14035edef
mov dword [rsp + 0x20], 0xbadc2e11
xor ecx, ecx
mov edx, 1
mov r8d, 0xe38ee6c7
mov r9d, 0x2115ca5d
call fcn.140361460
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x430]
mov edx, 1
mov r9, rax
call fcn.1400875c0
jmp 0x14035ee39
mov qword [rbp + 0x430], 0
xor ecx, ecx
test rdi, rdi
je 0x14035ec6e
mov edx, 1
xor r8d, r8d
nop word cs:[rax + rax]
mov r9, rcx
xor ecx, ecx
cmp byte [rdi + r9], 0
setne cl
movzx r8d, r8b
cmove r8d, edx
add rcx, r9
test r8b, 1
je 0x14035ec50
mov word [rbp + 0x430], cx
inc ecx
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 [case.0x140303ece.0]
cmp eax, 0xc0000142
je 0x14035ecb1
cmp eax, 0xc0000138
jne 0x14035ed3c
mov qword [rbp + 0x450], 0
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x1405410e0]
inc qword [0x140541180]
inc qword [0x140541150]
lea rax, [rcx + rax*8]
add rax, 0x78
jmp 0x14035ed6e
mov rcx, rdi
mov edx, 0x56a0dbab
mov r8d, 0x5ab13d6f
mov r9d, 0x16ec4de
call fcn.1400abe80
mov rcx, qword [rbp + 0x440]
mov rdx, qword [rbp + 0x448]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x14035ee09
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x430]
mov rdx, rax
mov r9, rdi
call fcn.1400875c0
jmp 0x14035f00d
cmp qword [rbp + 0x450], 0
je 0x14035ecbc
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x1405410e0]
inc qword [0x140541168]
lea rax, [rcx + rax*8]
add rax, 0x90
inc qword [rax]
mov dword [rsp + 0x28], 0xccfe7ac1
mov dword [rsp + 0x20], 0x6be5fcbe
xor esi, esi
mov ecx, 1
xor edx, edx
mov r8, qword [rbp + 0x3f8]
mov r9d, 0x106fb88
call fcn.1403622b0
movzx edx, byte [rbp + 0x45f]
xor edx, 0xc0000139
cmp qword [rbp + 0x450], 0
cmovne edx, esi
mov dword [rsp + 0x28], 0xdc87e438
mov dword [rsp + 0x20], 0xba167851
xor ecx, ecx
xor r8d, r8d
mov r9d, 0x843ce728
call fcn.140362060
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 0x14035ee2c
mov rcx, qword [rbp + 0x430]
jmp 0x14035ee33
mov r12, rax
add r12, rcx
mov qword [rbp + 0x440], r12
cmp rdx, 0x10
jb 0x14035ef74
mov rdx, qword [rbp + 0x430]
jmp 0x14035ef7b
lea rcx, [rbp + 0x430]
mov word [rcx + rax], 0x23
mov rdx, rdi
not rdx
mov rax, rdi
xor rax, 0xffff
and rdx, 0xffffffffffff0000
or rdx, rax
not rdx
mov r12d, 1
lea r9, [rbp + 0x3f4]
movabs r8, 0xcccccccccccccccd
nop dword [rax]
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 [0x14055de40]
or r10b, 0x30
mov byte [r9], r10b
cmp rcx, 0xa
jb 0x14035eea5
inc r12
dec r9
jmp 0x14035ee70
mov qword [rbp + 0x418], 0
mov qword [rbp + 0x420], 0xf
mov byte [rbp + 0x408], 0
test r12, r12
je 0x14035ef00
cmp r12, 0xf
jbe 0x14035eede
lea rcx, [rbp + 0x408]
mov rdx, r12
call fcn.140086c60
jmp 0x14035ef00
mov qword [rbp + 0x418], r12
lea rcx, [rbp + 0x408]
mov rdx, r9
mov r8, r12
call fcn.14040cc90
mov byte [rbp + r12 + 0x408], 0
mov r8, qword [rbp + 0x418]
cmp qword [rbp + 0x420], 0x10
jb 0x14035ef1a
mov r9, qword [rbp + 0x408]
jmp 0x14035ef21
lea r9, [rbp + 0x408]
mov rcx, qword [rbp + 0x440]
mov rax, qword [rbp + 0x448]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x14035ef50
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x430]
mov rdx, r8
call fcn.1400875c0
jmp 0x14035efbc
lea r10, [rcx + r8]
mov rdx, r10
mov qword [rbp + 0x428], r10
mov qword [rbp + 0x440], r10
cmp rax, 0x10
jb 0x14035ef9e
mov r12, qword [rbp + 0x430]
jmp 0x14035efa5
lea rdx, [rbp + 0x430]
mov qword [rbp + 0x428], rdx
add rcx, rdx
mov rdx, rdi
mov r8, rax
call fcn.14040cc90
mov rax, qword [rbp + 0x428]
mov byte [rax + r12], 0
jmp 0x14035f00d
lea r12, [rbp + 0x430]
add rcx, r12
mov rdx, r9
call fcn.14040cc90
mov rax, qword [rbp + 0x428]
mov byte [r12 + rax], 0
mov rax, qword [rbp + 0x420]
cmp rax, 0x10
jb 0x14035f00d
mov rcx, qword [rbp + 0x408]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14035effc
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14035f0f1
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0xfbe21025
mov r9d, 0xbf904459
call fcn.1400a7e90
mov rax, qword [rbp + 0x440]
mov ecx, dword [rbp + 0x404]
cmp rax, rcx
jae 0x14035f096
cmp qword [rbp + 0x448], 0x10
jb 0x14035f032
mov rdx, qword [rbp + 0x430]
jmp 0x14035f039
lea rdx, [rbp + 0x430]
lea rcx, [r13 - 0x20]
add rcx, rbp
xor r8d, r8d
test rax, rax
je 0x14035f06d
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 0x14035f050
mov eax, r8d
mov byte [rcx + rax], 0
mov qword [rbp + 0x408], 0
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x408]
call fcn.14035d430
mov qword [rbp + 0x450], rax
mov rax, qword [rbp + 0x448]
cmp rax, 0x10
jb 0x14035ea44
mov rcx, qword [rbp + 0x430]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14035f0d6
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14035f0ec
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov r8d, 0xfbe21025
mov r9d, 0xbf904459
call fcn.1400a7e90
jmp 0x14035ea44
call fcn.1403c4adc
call fcn.1403c4adc
int3