Function at 0x14039bd10
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
xor ecx, ecx
xor edx, edx
mov r8d, 0xc9eb496
call fcn.14039de40
cmp rbx, 0x12345678
je 0x14039bd8e
mov qword [rbp + 0x3f8], rax
call fcn.14039b8a0
test rdi, rdi
sets al
cmp rdi, 0x10000
setb sil
or sil, al
rdtsc
mov r15, rdx
mov r14, rax
je 0x14039bddb
xor r13d, r13d
jmp 0x14039bde2
cmp qword [0x14059901c], 0x33c0
jne 0x14039c2a1
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x38], 0x328b2d2f
mov dword [rsp + 0x30], 0xaed649b8
mov ecx, 1
xor edx, edx
xor r8d, r8d
xor r9d, r9d
call fcn.14039e0a0
add rax, 0x33c0
mov qword [0x14059901c], rax
jmp 0x14039c2a1
cmp byte [rdi], 0
sete r13b
mov r12, rbx
test rbx, rbx
jne 0x14039be05
mov ecx, 1
xor edx, edx
mov r8d, 0x328b2d2f
mov r9d, 0xb07028e0
call fcn.14039e460
mov r12, rax
movzx eax, byte [0x1405b6998]
mov ecx, eax
not cl
xor al, 1
and cl, 0xfe
or cl, al
cmp cl, 0xff
mov byte [rbp + 0x45f], sil
je 0x14039be5c
mov ecx, 1
mov edx, 1
mov r8d, 0x1a223a2b
mov r9d, 0x7fb4a6fe
call fcn.14039dfc0
test rax, rax
je 0x14039be5c
test sil, sil
je 0x14039bea7
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
mov r8d, edi
jmp 0x14039bf11
test r12, r12
je 0x14039bf29
mov eax, dword [0x1405b3980]
add eax, dword [r12 + 0x3c]
je 0x14039bf29
mov eax, eax
cmp dword [r12 + rax], 0x4550
jne 0x14039bf29
cmp dword [r12 + rax + 0x88], 0
je 0x14039bea0
cmp dword [r12 + rax + 0x8c], 0
jne 0x14039bf29
xor esi, esi
jmp 0x14039bf46
mov qword [rbp - 0x20], 0
mov dword [0x1405b69ac], 0
xor ecx, ecx
test rdi, rdi
je 0x14039bef2
mov edx, 1
xor r8d, r8d
nop dword [rax + rax]
xor r9d, r9d
cmp byte [rdi + rcx], 0
setne r9b
movzx r8d, r8b
cmove r8d, edx
add rcx, r9
mov r9d, r8d
xor r9b, 0xfe
test r9b, r8b
je 0x14039bed0
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 [case.0x14013082b.0]
cmp eax, 0xc0000138
jne 0x14039bf29
mov qword [rbp + 0x450], 0
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14044ecc0
mov sil, 1
test r13b, r13b
je 0x14039c039
shl r15, 0x20
or r14, r15
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.14044ecc0
rdtsc
shl rdx, 0x20
or rdx, rax
sub rdx, r14
cmp qword [0x140598fa8], 0
je 0x14039bf80
mov rax, qword [0x140598fa8]
cmp rax, rdx
jae 0x14039bf87
mov qword [0x140598fa8], rdx
cmp qword [rbp + 0x450], 0
setne al
xor sil, 1
or sil, al
jne 0x14039c251
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x58], 0xe85d991f
mov dword [rsp + 0x50], 0x823e013c
mov dword [rsp + 0x48], 0x7d2bc423
mov qword [rsp + 0x40], 0
mov ecx, 1
mov edx, 1
xor r8d, r8d
xor r9d, r9d
call fcn.14039e510
cmp eax, 0x4750412d
je 0x14039c251
mov ecx, 1
mov edx, 1
mov r8d, 0x1a223a2b
mov r9d, 0x7fb4a6fe
call fcn.14039dfc0
test rax, rax
je 0x14039c251
inc qword [0x140598f48]
cmp rdi, 0xffff
ja 0x14039c11d
lea r9, [rbp + 0x450]
mov rcx, rbx
xor edx, edx
mov r8d, edi
jmp 0x14039c190
mov dword [rsp + 0x20], 0x9e5a5fb3
mov ecx, 1
mov edx, 1
mov r8, rbx
mov r9d, 0x86fce13
call fcn.14039e060
test rax, rax
je 0x14039bf46
xor ecx, ecx
nop word cs:[rax + rax]
mov r13d, ecx
movzx edx, word [rax + r13*2]
test edx, edx
je 0x14039c08a
cmp edx, 0x2e
je 0x14039c08a
mov byte [rbp + r13 - 0x20], dl
inc ecx
jmp 0x14039c070
mov eax, 0x400
sub eax, ecx
cmp eax, 2
jb 0x14039bf46
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 0x14039c1da
mov rax, qword [rbp + 0x440]
mov rcx, qword [rbp + 0x448]
cmp rcx, rax
jne 0x14039c2bc
xor ecx, ecx
mov edx, 1
mov r8d, 0x4a05d9a5
mov r9d, 0x4346defa
call fcn.14039e150
mov qword [rsp + 0x20], 1
lea rcx, [rbp + 0x430]
mov edx, 1
mov r9, rax
call fcn.14008b3d0
jmp 0x14039c306
mov qword [rbp + 0x430], 0
xor ecx, ecx
test rdi, rdi
je 0x14039c15e
mov edx, 1
xor r8d, r8d
nop word [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 0x14039c140
mov word [rbp + 0x430], cx
add cx, word [0x1405b69b4]
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.0x14013082b.0]
cmp eax, 0xc0000142
je 0x14039c1a4
cmp eax, 0xc0000138
jne 0x14039c220
mov qword [rbp + 0x450], 0
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x140598ee0]
inc qword [0x140598f80]
inc qword [0x140598f50]
lea rax, [rcx + rax*8]
add rax, 0x78
jmp 0x14039c24e
mov rcx, rdi
mov edx, 0xa2b43513
call fcn.14039dee0
mov rcx, qword [rbp + 0x440]
mov rdx, qword [rbp + 0x448]
mov r8, rdx
sub r8, rcx
cmp r8, rax
jae 0x14039c2d6
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x430]
mov rdx, rax
mov r9, rdi
call fcn.14008b3d0
jmp 0x14039c4be
cmp qword [rbp + 0x450], 0
je 0x14039c1af
xor eax, eax
cmp rdi, 0x10000
setae al
lea rcx, [0x140598ee0]
inc qword [0x140598f68]
lea rax, [rcx + rax*8]
add rax, 0x90
inc qword [rax]
mov dword [rsp + 0x20], 0x9e5a5fb3
xor esi, esi
xor ecx, ecx
xor edx, edx
mov r8, qword [rbp + 0x3f8]
mov r9d, 0x86fce13
call fcn.14039e060
movzx edx, byte [rbp + 0x45f]
xor edx, 0xc0000139
cmp qword [rbp + 0x450], 0
cmovne edx, esi
mov dword [rsp + 0x20], 0x5d7769bc
xor ecx, ecx
xor r8d, r8d
mov r9d, 0x27a19030
call fcn.14039e130
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 0x14039c2f9
mov rcx, qword [rbp + 0x430]
jmp 0x14039c300
mov r12, rax
add r12, rcx
mov qword [rbp + 0x440], r12
cmp rdx, 0x10
jb 0x14039c41d
mov rdx, qword [rbp + 0x430]
jmp 0x14039c424
lea rcx, [rbp + 0x430]
mov word [rcx + rax], 0x23
movzx edx, di
mov r12d, 1
lea r9, [rbp + 0x3f4]
movabs r8, 0xcccccccccccccccd
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
or r10b, 0x30
mov byte [r9], r10b
cmp rcx, 0xa
jb 0x14039c34e
inc r12
dec r9
jmp 0x14039c320
mov qword [rbp + 0x418], 0
mov qword [rbp + 0x420], 0xf
mov byte [rbp + 0x408], 0
test r12, r12
je 0x14039c3a9
cmp r12, 0xf
jbe 0x14039c387
lea rcx, [rbp + 0x408]
mov rdx, r12
call fcn.14008abc0
jmp 0x14039c3a9
mov qword [rbp + 0x418], r12
lea rcx, [rbp + 0x408]
mov rdx, r9
mov r8, r12
call fcn.14044e610
mov byte [rbp + r12 + 0x408], 0
mov r8, qword [rbp + 0x418]
cmp qword [rbp + 0x420], 0x10
jb 0x14039c3c3
mov r9, qword [rbp + 0x408]
jmp 0x14039c3ca
lea r9, [rbp + 0x408]
mov rcx, qword [rbp + 0x440]
mov rax, qword [rbp + 0x448]
mov rdx, rax
sub rdx, rcx
cmp rdx, r8
jae 0x14039c3f9
mov qword [rsp + 0x20], r8
lea rcx, [rbp + 0x430]
mov rdx, r8
call fcn.14008b3d0
jmp 0x14039c465
lea r10, [rcx + r8]
mov rdx, r10
mov qword [rbp + 0x428], r10
mov qword [rbp + 0x440], r10
cmp rax, 0x10
jb 0x14039c447
mov r12, qword [rbp + 0x430]
jmp 0x14039c44e
lea rdx, [rbp + 0x430]
mov qword [rbp + 0x428], rdx
add rcx, rdx
mov rdx, rdi
mov r8, rax
call fcn.14044e610
mov rax, qword [rbp + 0x428]
mov byte [rax + r12], 0
jmp 0x14039c4be
lea r12, [rbp + 0x430]
add rcx, r12
mov rdx, r9
call fcn.14044e610
mov rax, qword [rbp + 0x428]
mov byte [r12 + rax], 0
mov rax, qword [rbp + 0x420]
cmp rax, 0x10
jb 0x14039c4be
mov rcx, qword [rbp + 0x408]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14039c4a5
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x14039c5b1
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov dword [rsp + 0x20], 0x20e5c323
mov r8d, 0x40c922e9
mov r9d, 0x75be4606
call fcn.1400a7e20
mov rax, qword [rbp + 0x440]
mov ecx, dword [rbp + 0x404]
cmp rax, rcx
jae 0x14039c53a
cmp qword [rbp + 0x448], 0x10
jb 0x14039c4e3
mov rdx, qword [rbp + 0x430]
jmp 0x14039c4ea
lea rdx, [rbp + 0x430]
lea rcx, [r13 - 0x20]
add rcx, rbp
xor r8d, r8d
test rax, rax
je 0x14039c511
nop dword [rax]
movzx r9d, byte [rdx + r8]
mov byte [rcx + r8], r9b
inc r8d
cmp rax, r8
ja 0x14039c500
mov eax, r8d
mov byte [rcx + rax], 0
mov qword [rbp + 0x408], 0
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x408]
call fcn.14039aa20
mov qword [rbp + 0x450], rax
mov rax, qword [rbp + 0x448]
cmp rax, 0x10
jb 0x14039bf46
mov rcx, qword [rbp + 0x430]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14039c58e
mov r8, qword [rcx - 8]
mov rdx, rcx
xor rdx, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rcx
lea rcx, [rdx + r9*2]
sub rcx, r8
cmp rcx, 0x20
jae 0x14039c5ac
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov dword [rsp + 0x20], 0x20e5c323
mov r8d, 0x40c922e9
mov r9d, 0x75be4606
call fcn.1400a7e20
jmp 0x14039bf46
call fcn.14040686c
call fcn.14040686c
int3