Function at 0x140003df0
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x18], r8d
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x490
mov r12, rdx
mov rbx, rcx
test rcx, rcx
je 0x140004758
mov r13, qword [rcx + 0x10]
test r13, r13
je 0x140004758
test rdx, rdx
je 0x140004758
xor r15d, r15d
mov edx, 0x5a4d
mov dword [rcx + 0x20], r15d
mov ecx, r15d
cmp dx, word [r12]
sete cl
jne 0x140003e7d
movsxd rdx, dword [r12 + 0x3c]
mov ecx, r15d
cmp dword [rdx + r12], 0x4550
sete cl
jne 0x140003e7d
mov eax, 0x8664
cmp ax, word [rdx + r12 + 4]
jne 0x140003e81
mov eax, 0x20b
mov ecx, r15d
cmp ax, word [rdx + r12 + 0x18]
sete cl
test ecx, ecx
jne 0x140003e8d
mov dword [rbx + 0x20], 1
jmp 0x140004758
movsxd rsi, dword [r12 + 0x3c]
mov ecx, r15d
mov r13, qword [r13 + 0x18]
add rsi, r12
mov edx, r15d
movzx r8d, word [rsi + 6]
cmp r8d, 8
jb 0x14000405e
cmp dword [0x14002cc8c], 2
jl 0x14000405e
movaps xmmword [rsp + 0x480], xmm6
mov eax, 0xfffffff8
movaps xmmword [rsp + 0x470], xmm7
mov edx, r8d
movaps xmmword [rsp + 0x460], xmm8
and rdx, rax
movaps xmmword [rsp + 0x450], xmm9
lea rax, [rsi + 0x164]
movdqa xmm9, xmmword [0x140002830]
xorps xmm6, xmm6
xorps xmm8, xmm8
xorps xmm7, xmm7
mov r9, r15
nop word [rax + rax]
movd xmm1, dword [rax + 0x28]
movdqa xmm5, xmm8
movd xmm0, dword [rax - 0x28]
add ecx, 8
movd xmm2, dword [rax]
add r9, 8
movd xmm4, dword [rax - 0x50]
movd xmm3, dword [rax - 0x4c]
lea rax, [rax + 0x140]
punpckldq xmm4, xmm0
movd xmm0, dword [rax - 0x164]
punpckldq xmm3, xmm0
movdqa xmm0, xmm6
punpckldq xmm2, xmm1
movd xmm1, dword [rax - 0x114]
punpcklqdq xmm4, xmm2
movd xmm2, dword [rax - 0x13c]
pcmpeqd xmm5, xmm4
punpckldq xmm2, xmm1
pandn xmm5, xmm9
movd xmm1, dword [rax - 0x78]
punpcklqdq xmm3, xmm2
movd xmm2, dword [rax - 0xa0]
paddd xmm3, xmm4
movd xmm4, dword [rax - 0xf0]
pmaxud xmm0, xmm3
movd xmm3, dword [rax - 0xec]
pand xmm0, xmm5
punpckldq xmm2, xmm1
pandn xmm5, xmm6
movd xmm1, dword [rax - 0x74]
movdqa xmm6, xmm0
movd xmm0, dword [rax - 0xc8]
por xmm6, xmm5
punpckldq xmm4, xmm0
movdqa xmm5, xmm8
movd xmm0, dword [rax - 0xc4]
punpckldq xmm3, xmm0
movdqa xmm0, xmm7
punpcklqdq xmm4, xmm2
movd xmm2, dword [rax - 0x9c]
pcmpeqd xmm5, xmm4
punpckldq xmm2, xmm1
pandn xmm5, xmm9
punpcklqdq xmm3, xmm2
paddd xmm3, xmm4
pmaxud xmm0, xmm3
pand xmm0, xmm5
pandn xmm5, xmm7
movdqa xmm7, xmm0
por xmm7, xmm5
cmp r9, rdx
jl 0x140003f10
movaps xmm9, xmmword [rsp + 0x450]
pmaxud xmm6, xmm7
movaps xmm8, xmmword [rsp + 0x460]
movdqa xmm0, xmm6
movaps xmm7, xmmword [rsp + 0x470]
psrldq xmm0, 8
pmaxud xmm6, xmm0
movdqa xmm0, xmm6
psrldq xmm0, 4
pmaxud xmm6, xmm0
movd edx, xmm6
movaps xmm6, xmmword [rsp + 0x480]
movsxd rcx, ecx
mov r9, r8
mov qword [rsp + 0x4d0], r8
cmp rcx, r8
jge 0x14000409a
lea r8, [rcx + 7]
sub r9, rcx
lea r8, [r8 + r8*4]
lea r8, [rsi + r8*8]
mov ecx, dword [r8 - 4]
test ecx, ecx
je 0x140004090
add ecx, dword [r8]
cmp edx, ecx
cmovb edx, ecx
add r8, 0x28
sub r9, 1
jne 0x140004080
mov rcx, qword [rsi + 0x30]
mov r14d, 0x3000
mov r8d, r14d
mov edi, edx
mov r9d, 4
call r13
mov qword [rsp + 0x20], rax
mov rbp, rax
test rax, rax
jne 0x1400040de
lea r9d, [rax + 4]
mov r8d, r14d
mov edx, edi
xor ecx, ecx
call r13
mov qword [rsp + 0x20], rax
mov rbp, rax
test rax, rax
je 0x140004751
mov edx, dword [rsi + 0x54]
mov r9d, 4
mov r8d, 0x1000
mov rcx, rbp
call r13
mov rdi, rax
test rax, rax
je 0x140004751
mov r8d, dword [rsi + 0x54]
mov rdx, r12
mov rcx, rax
call fcn.140005e90
mov rcx, qword [rsp + 0x4d0]
mov qword [rbx], rdi
mov eax, dword [rsi + 0x50]
mov dword [rbx + 8], eax
mov dword [rbx + 0x1c], 1
movsxd rdx, dword [rdi + 0x3c]
add rdx, rdi
mov qword [rsp + 0x4e8], rdx
test rcx, rcx
je 0x1400041c9
lea rsi, [rdx + 0x118]
mov eax, dword [rsi - 4]
test eax, eax
je 0x1400041b1
lea r14, [rax + rbp]
mov eax, dword [rsi]
test eax, eax
jne 0x140004238
mov ebp, dword [rsi - 8]
test ebp, ebp
jne 0x14000416c
mov ebp, dword [rdx + 0x38]
test ebp, ebp
je 0x1400042c5
mov edx, ebp
mov r9d, 4
mov r8d, 0x1000
mov rcx, r14
call r13
mov rdi, rax
test rax, rax
je 0x140004751
mov r8d, ebp
xor edx, edx
mov rcx, r14
call fcn.140005e40
mov rbp, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x4e8]
mov rcx, qword [rsp + 0x4d0]
mov dword [rsi - 8], edi
inc r15
add rsi, 0x28
cmp r15, rcx
jl 0x140004145
mov rdi, qword [rbx]
xor r15d, r15d
mov r14d, 0x3000
test rdi, rdi
je 0x140004210
movsxd rax, dword [rdi + 0x3c]
mov r10, rdi
sub r10, qword [rax + rdi + 0x30]
je 0x140004382
mov ecx, dword [rax + rdi + 0xb0]
test ecx, ecx
je 0x140004382
cmp dword [rax + rdi + 0xb4], 0
je 0x140004382
mov r9d, ecx
add r9, rdi
jne 0x1400042cf
mov dword [rbx + 0x20], 3
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140004758
cmp dword [rbx + 0x1c], 0
je 0x140004758
test rdi, rdi
je 0x140004758
mov rcx, rdi
jmp 0x140004615
mov rdx, rax
mov r9d, 4
mov r8d, 0x1000
mov rcx, r14
call r13
mov rdi, rax
test rax, rax
je 0x140004751
mov r8d, dword [rsi + 4]
mov ecx, dword [rsi]
add r8, r12
cmp r8, rax
jae 0x140004298
dec r8
lea rdx, [rax - 1]
add rdx, rcx
add r8, rcx
test ecx, ecx
je 0x14000419e
nop dword [rax]
movzx eax, byte [r8]
lea r8, [r8 - 1]
mov byte [rdx], al
lea rdx, [rdx - 1]
add ecx, 0xffffffff
jne 0x140004280
jmp 0x14000419e
jbe 0x14000419e
mov rdx, rax
test ecx, ecx
je 0x14000419e
sub r8, rax
nop dword [rax]
movzx eax, byte [r8 + rdx]
mov byte [rdx], al
lea rdx, [rdx + 1]
add ecx, 0xffffffff
jne 0x1400042b0
jmp 0x14000419e
mov rbp, qword [rsp + 0x20]
jmp 0x1400041ae
mov ecx, dword [r9]
mov r8d, dword [r9 + 4]
add ecx, r8d
je 0x140004382
mov edi, 0xf000
mov esi, 0xa000
nop dword [rax]
mov eax, r8d
mov rdx, r15
sub rax, 8
shr rax, 1
movsxd r11, eax
test eax, eax
jle 0x14000436c
nop dword [rax]
nop dword [rax + rax]
movzx r8d, word [r9 + rdx*2 + 8]
movzx eax, r8w
movzx ecx, r8w
and ax, di
cmp r14w, ax
jne 0x14000433f
mov eax, dword [r9]
and ecx, 0xfff
add rcx, rax
add rcx, qword [rbx]
add dword [rcx], r10d
movzx r8d, word [r9 + rdx*2 + 8]
movzx ecx, r8w
movzx eax, r8w
and cx, di
cmp si, cx
jne 0x140004360
mov ecx, dword [r9]
and eax, 0xfff
add rax, rcx
add rax, qword [rbx]
add qword [rax], r10
inc rdx
cmp rdx, r11
jl 0x140004310
mov r8d, dword [r9 + 4]
mov eax, r8d
add r9, rax
mov ecx, dword [r9]
mov r8d, dword [r9 + 4]
add ecx, r8d
jne 0x1400042f0
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140004758
mov r10, qword [rbx]
test r10, r10
je 0x1400045f6
mov r13, qword [rax + 8]
mov r12, qword [rax + 0x10]
mov rbp, qword [rax]
movsxd rax, dword [r10 + 0x3c]
mov ecx, dword [rax + r10 + 0x90]
test ecx, ecx
je 0x14000446e
cmp dword [rax + r10 + 0x94], 0
je 0x14000446e
mov eax, dword [r10 + rcx + 0xc]
lea r14, [r10 + rcx]
test eax, eax
je 0x14000446e
nop word [rax + rax]
mov edi, eax
add rdi, qword [rbx]
mov rcx, rdi
call r13
mov rsi, rax
test rax, rax
jne 0x140004405
mov rcx, rdi
call r12
mov rsi, rax
test rax, rax
je 0x1400045e8
mov eax, dword [r14]
mov rdx, qword [rbx]
test eax, eax
je 0x140004419
lea rdi, [rdx + rax]
mov eax, dword [r14 + 0x10]
jmp 0x140004421
mov eax, dword [r14 + 0x10]
lea rdi, [rdx + rax]
mov rcx, qword [rdi]
test rcx, rcx
je 0x14000445b
mov r15d, eax
sub r15, rdi
add r15, rdx
test rcx, rcx
jns 0x14000443c
movzx edx, cx
jmp 0x140004446
mov rdx, qword [rbx]
add rdx, 2
add rdx, rcx
mov rcx, rsi
call rbp
mov qword [r15 + rdi], rax
add rdi, 8
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140004435
mov eax, dword [r14 + 0x20]
add r14, 0x14
test eax, eax
jne 0x1400043e0
mov r10, qword [rbx]
mov r8d, dword [rbx + 8]
lea r11, [rsp + 0x50]
xor r13d, r13d
mov r9d, r13d
nop dword [rax]
mov ecx, r9d
lea r11, [r11 + 4]
shl ecx, 0x18
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c10db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c10db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c10db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c10db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c10db7
test ecx, ecx
cmovns edx, eax
lea eax, [rdx + rdx]
mov ecx, eax
xor ecx, 0x4c10db7
test edx, edx
cmovns ecx, eax
lea eax, [rcx + rcx]
mov edx, eax
xor edx, 0x4c10db7
test ecx, ecx
cmovns edx, eax
lea ecx, [rdx + rdx]
mov eax, ecx
xor eax, 0x4c10db7
test edx, edx
cmovns eax, ecx
inc r9d
mov dword [r11 - 4], eax
cmp r9d, 0x100
jl 0x140004480
mov edx, r13d
mov r9, r10
test r8d, r8d
je 0x14000454e
nop dword [rax + rax]
movzx eax, byte [r9]
lea r9, [r9 + 1]
mov ecx, edx
shr rcx, 0x18
xor rcx, rax
shl edx, 8
xor edx, dword [rsp + rcx*4 + 0x50]
add r8d, 0xffffffff
jne 0x140004530
mov rax, qword [rbx + 0x10]
mov dword [rbx + 0xc], edx
test rax, rax
je 0x140004758
movsxd rdi, dword [r10 + 0x3c]
mov rbp, r10
mov r12, qword [rax + 0x28]
add rdi, r10
mov r15, qword [rax + 0x20]
movabs rax, 0xffffffff00000000
movdqa xmm0, xmmword [0x140002800]
and rbp, rax
movdqa xmm1, xmmword [0x140002810]
movzx r14d, word [rdi + 6]
movdqu xmmword [rsp + 0x28], xmm0
movdqu xmmword [rsp + 0x38], xmm1
test r14, r14
je 0x140004692
mov rsi, r13
add rdi, 0x118
mov r10d, dword [rdi - 8]
mov eax, dword [rdi]
or r10, rbp
mov dword [rsp + 0x4d0], r13d
test eax, eax
je 0x140004682
mov r9d, dword [rdi + 0x14]
mov edx, eax
bt r9d, 0x19
jae 0x140004634
mov r8d, 0x4000
mov rcx, r10
call r15
jmp 0x140004682
mov rax, qword [rbx + 0x10]
xor r15d, r15d
mov dword [rbx + 0x20], 4
test rax, rax
je 0x140004758
cmp dword [rbx + 0x1c], 0
je 0x140004758
mov rcx, qword [rbx]
test rcx, rcx
je 0x140004758
mov r8d, 0x8000
xor edx, edx
call qword [rax + 0x20]
mov qword [rbx], r15
mov qword [rbx + 8], 0
mov dword [rbx + 0x1c], r15d
jmp 0x140004758
mov ecx, r9d
mov eax, r9d
shr rax, 0x1b
shr rcx, 0x1d
and eax, 4
and ecx, 2
add rcx, rax
mov rax, r9
shr rax, 0x1f
add rcx, rax
mov eax, dword [rsp + rcx*4 + 0x28]
mov r8d, eax
bts r8d, 9
mov rcx, r10
and r9d, 0x4000000
lea r9, [rsp + 0x4d0]
cmove r8d, eax
call r12
test eax, eax
je 0x140004707
inc rsi
add rdi, 0x28
cmp rsi, r14
jl 0x1400045b1
mov rdi, qword [rbx]
test rdi, rdi
je 0x140004758
movsxd rax, dword [rdi + 0x3c]
mov ecx, dword [rax + rdi + 0xd0]
test ecx, ecx
je 0x1400046d9
mov rdi, qword [rcx + rdi + 0x18]
test rdi, rdi
je 0x1400046d9
mov rax, qword [rdi]
test rax, rax
je 0x1400046d9
nop
mov rcx, qword [rbx]
xor r8d, r8d
lea edx, [r8 + 1]
call rax
mov rax, qword [rdi + 8]
lea rdi, [rdi + 8]
test rax, rax
jne 0x1400046c0
cmp dword [rsp + 0x4e0], r13d
je 0x14000474a
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000470e
movsxd rax, dword [rcx + 0x3c]
mov edx, dword [rax + rcx + 0x28]
test edx, edx
je 0x14000470e
mov eax, edx
add rax, rcx
jne 0x14000473d
mov dword [rbx + 0x20], 6
jmp 0x14000470e
mov dword [rbx + 0x20], 5
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x140004758
cmp dword [rbx + 0x1c], r13d
je 0x140004758
mov rcx, qword [rbx]
test rcx, rcx
je 0x140004758
xor edx, edx
mov r8d, 0x8000
call qword [rax + 0x20]
mov qword [rbx], r13
mov qword [rbx + 8], r13
mov dword [rbx + 0x1c], r13d
jmp 0x140004758
xor r8d, r8d
lea edx, [r8 + 1]
call rax
test eax, eax
je 0x14000470e
mov eax, 1
jmp 0x14000475a
mov dword [rbx + 0x20], 2
xor eax, eax
mov rbx, qword [rsp + 0x4d8]
add rsp, 0x490
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret