Function at 0x1400ed8d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1a8
mov qword [rsp + 0x98], r9
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x1a0], rcx
mov r13, qword [rax + 8]
mov r14, rdx
sub r14, r13
movzx ecx, byte [rax + 0x100]
mov r9d, 1
shl r9d, cl
mov ecx, dword [rax + 0x1c]
mov r10d, r14d
sub r10d, ecx
mov r11d, r14d
sub r11d, r9d
cmp r10d, r9d
cmovbe r11d, ecx
mov qword [rsp + 0x50], r8
movabs rsi, 0xcf1bbcdcbb000000
cmp dword [rax + 0x28], 0
cmovne r11d, ecx
mov dword [rsp + 0x70], r11d
mov r8d, dword [rax + 0x10c]
cmp r8d, 4
mov ecx, 4
cmovb ecx, r8d
mov ebp, 1
shl ebp, cl
mov r10d, 1
mov r9, qword [rax + 0xf8]
mov r11, qword [rdx]
imul r11, rsi
mov cl, 0x42
sub cl, byte [r9 + 0x108]
mov r12, r11
shr r12, cl
mov rbx, r12
shl rbx, 4
lea ecx, [r8 - 4]
shl r10d, cl
mov rdi, qword [rax + 0x70]
mov rcx, qword [rax + 0x38]
mov qword [rsp + 0x48], rcx
mov r15d, dword [rax + 0x34]
mov ecx, dword [rax + 0x18]
mov qword [rsp + 0x90], rcx
mov rsi, qword [rax + 0x60]
mov qword [rsp + 0x80], r9
mov rcx, qword [r9 + 0x70]
prefetcht0 byte [rcx + rbx]
xor ecx, ecx
cmp r8d, 5
cmovae ecx, r10d
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x60], r14
mov dword [rsp + 0x5c], ecx
je 0x1400eda07
xor r11, rsi
mov cl, 0x38
sub cl, r15b
shr r11, cl
mov dword [rax + 0x2c], r14d
mov r10, qword [rsp + 0x48]
jmp 0x1400eddc1
mov qword [rsp + 0x68], r12
mov r12d, dword [rax + 0x2c]
mov ecx, r14d
sub ecx, r12d
cmp ecx, 0x181
mov qword [rsp + 0x78], rsi
jb 0x1400edc06
mov r11, qword [rsp + 0x48]
mov r10, rdi
cmp r12d, 0xffffff9f
ja 0x1400edaf7
lea r8, [r12 + 0x60]
mov ecx, 0x38
mov dword [rsp + 0x3c], r15d
sub ecx, r15d
mov rdx, qword [rsp + 0x48]
mov r11, qword [r13 + r12 + 8]
movabs r9, 0xcf1bbcdcbb000000
imul r11, r9
xor r11, qword [rax + 0x60]
shr r11, cl
mov rsi, r11
shr rsi, 4
and esi, 0xffffff0
prefetcht0 byte [rdi + rsi*4]
prefetcht0 byte [rdx + rsi]
mov esi, r12d
and esi, 7
mov r15d, dword [rax + rsi*4 + 0x40]
mov dword [rax + rsi*4 + 0x40], r11d
mov r11, r15
shr r11, 4
and r11d, 0xffffff0
lea rsi, [rdi + r11*4]
movzx r13d, byte [rdx + r11]
dec r13b
and r13b, 0xf
mov r10d, 0
mov r9d, 0xf
cmove r10d, r9d
lea r9, [rdx + r11]
movzx r13d, r13b
add r13, r10
mov byte [rdx + r11], r13b
mov byte [r9 + r13], r15b
mov dword [rsi + r13*4], r12d
mov r13, qword [rsp + 0x30]
inc r12
cmp r8, r12
jne 0x1400eda50
mov r11, qword [rax + 0x38]
mov r10, qword [rax + 0x70]
mov rdx, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x3c]
lea r12d, [r14 - 0x20]
lea rcx, [rdx + 1]
lea r8, [r12 + r13]
mov r9d, ecx
sub r9d, r8d
inc r9d
cmp r9d, 8
mov esi, 8
cmovb esi, r9d
xor r9d, r9d
cmp r8, rcx
cmovbe r9d, esi
lea esi, [r9 + r14]
add esi, 0xffffffe0
cmp esi, r12d
jbe 0x1400edc15
mov r8, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r14d, esi
sub esi, r12d
mov r13, r12
not r13
test sil, 1
jne 0x1400edc2c
mov rsi, r12
movabs rdx, 0xcf1bbcdcbb000000
add r13, r14
je 0x1400edc79
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x88], rdi
mov rdi, qword [rsp + 0x30]
nop dword [rax]
mov r9, qword [rdi + rsi]
imul r9, rdx
xor r9, r8
shr r9, cl
mov r13, r9
shr r13, 4
and r13d, 0xffffff0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r11 + r13]
mov r13d, esi
and r13d, 7
mov dword [rax + r13*4 + 0x40], r9d
lea r9d, [rsi + 1]
mov r15, qword [rdi + rsi + 1]
imul r15, rdx
xor r15, r8
shr r15, cl
mov r13, r15
shr r13, 4
and r13d, 0xffffff0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r11 + r13]
and r9d, 7
mov dword [rax + r9*4 + 0x40], r15d
add rsi, 2
cmp r14, rsi
jne 0x1400edb80
mov rdx, qword [rsp + 0x40]
mov r13, rdi
mov rdi, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x3c]
jmp 0x1400edc83
mov r11, qword [rsp + 0x48]
mov r10, rdi
cmp r12d, r14d
jae 0x1400edc1f
jmp 0x1400edc92
mov rsi, qword [rsp + 0x78]
cmp r12d, r14d
jb 0x1400edc92
mov r8d, r14d
mov r12, qword [rsp + 0x68]
jmp 0x1400edd77
mov rdx, qword [rsp + 0x30]
mov r9, qword [rdx + r12]
movabs rdx, 0xcf1bbcdcbb000000
imul r9, rdx
xor r9, r8
shr r9, cl
mov rsi, r9
shr rsi, 4
and esi, 0xffffff0
prefetcht0 byte [r10 + rsi*4]
prefetcht0 byte [r11 + rsi]
mov esi, r12d
and esi, 7
mov dword [rax + rsi*4 + 0x40], r9d
lea rsi, [r12 + 1]
add r13, r14
jne 0x1400edb6b
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x78]
mov r14, qword [rsp + 0x60]
cmp r12d, r14d
jae 0x1400edc1f
mov dword [rsp + 0x3c], r15d
mov qword [rsp + 0x88], rdi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r15, qword [rax + 8]
mov esi, r12d
mov r8d, r14d
nop word cs:[rax + rax]
mov r9, qword [r15 + rsi + 8]
movabs rdx, 0xcf1bbcdcbb000000
imul r9, rdx
xor r9, qword [rax + 0x60]
shr r9, cl
mov r13, r9
shr r13, 4
and r13d, 0xffffff0
prefetcht0 byte [r10 + r13*4]
prefetcht0 byte [r11 + r13]
mov r13d, esi
and r13d, 7
mov r12d, dword [rax + r13*4 + 0x40]
mov dword [rax + r13*4 + 0x40], r9d
mov r9, r12
shr r9, 4
and r9d, 0xffffff0
lea r13, [r10 + r9*4]
movzx edx, byte [r11 + r9]
dec dl
and dl, 0xf
mov r14d, 0
mov edi, 0xf
cmove r14d, edi
lea rdi, [r11 + r9]
movzx edx, dl
add rdx, r14
mov byte [r11 + r9], dl
mov byte [rdi + rdx], r12b
mov dword [r13 + rdx*4], esi
inc rsi
cmp r8, rsi
jne 0x1400edcc0
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x30]
mov r14, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x78]
mov dword [rax + 0x2c], r14d
movabs r9, 0xcf1bbcdcbb000000
imul r9, qword [r13 + r8 + 8]
xor r9, rsi
mov cl, 0x38
sub cl, r15b
shr r9, cl
mov rcx, r9
shr rcx, 4
and ecx, 0xffffff0
prefetcht0 byte [rdi + rcx*4]
mov r10, qword [rsp + 0x48]
prefetcht0 byte [r10 + rcx]
mov ecx, r14d
and ecx, 7
mov r11d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r9d
add dword [rax + 0x68], r11d
mov r9d, r11d
shr r9d, 4
and r9d, 0xfffffff0
lea r8, [r10 + r9]
movzx ecx, byte [r10 + r9]
movd xmm0, r11d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r10 + r9]
pcmpeqb xmm1, xmm0
pmovmskb r10d, xmm1
lea rdi, [rdi + r9*4]
xor esi, esi
test r10d, r10d
je 0x1400ede5b
ror r10w, cl
movzx r14d, r10w
xor r10d, r10d
nop word cs:[rax + rax]
tzcnt r15, r14
add r15d, ecx
and r15d, 0xf
je 0x1400ede4c
mov r15d, dword [rdi + r15*4]
cmp r15d, dword [rsp + 0x70]
jb 0x1400ede5e
prefetcht0 byte [r13 + r15]
mov dword [rsp + r10*4 + 0xa0], r15d
inc r10
dec ebp
lea r9, [r14 - 1]
and r14, r9
je 0x1400ede5e
test ebp, ebp
jne 0x1400ede20
jmp 0x1400ede5e
xor r10d, r10d
shl r12, 2
dec ecx
and ecx, 0xf
mov r9d, 0xf
cmove esi, r9d
add rsi, rcx
mov byte [r8], sil
mov byte [r8 + rsi], r11b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [rdi + rsi*4], ecx
test r10, r10
mov qword [rsp + 0x68], r12
je 0x1400ee001
mov r8, qword [rsp + 0x50]
lea rax, [r8 - 7]
lea rcx, [r8 - 3]
lea rdi, [r8 - 1]
mov r8, qword [rsp + 0x60]
add r8d, 3
mov dword [rsp + 0x70], r8d
lea r11, [rdx + 8]
lea r8, [r13 + 8]
mov qword [rsp + 0x48], r8
mov r12d, 3
xor r15d, r15d
jmp 0x1400ededf
inc r15
mov r14, r12
cmp r15, r10
je 0x1400ee007
mov r8d, dword [rsp + r15*4 + 0xa0]
lea rsi, [r8 + r13]
mov r9d, dword [r12 + rsi - 3]
cmp r9d, dword [rdx + r12 - 3]
jne 0x1400eded0
cmp rax, rdx
jbe 0x1400edf20
mov r9, qword [rdx]
xor r9, qword [rsi]
je 0x1400edf3a
tzcnt r14, r9
shr r14, 3
jmp 0x1400edfd1
mov r14, rdx
cmp r14, rcx
jae 0x1400edfa0
mov r9d, dword [rsi]
cmp r9d, dword [r14]
jne 0x1400edfa0
add r14, 4
add rsi, 4
jmp 0x1400edfa0
mov rdx, qword [rsp + 0x48]
lea rsi, [rdx + r8]
xor r13d, r13d
nop word cs:[rax + rax]
lea r14, [r11 + r13]
cmp r14, rax
jae 0x1400edf81
mov r14, qword [r14]
lea r9, [r13 + 8]
xor r14, qword [rsi + r13]
mov r13, r9
je 0x1400edf50
tzcnt r14, r14
shr r14, 3
add r14, r9
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x30]
jmp 0x1400edfd1
add rsi, r13
mov rdx, qword [rsp + 0x40]
mov r13, qword [rsp + 0x30]
cmp r14, rcx
jb 0x1400edf28
nop word cs:[rax + rax]
cmp r14, rdi
jae 0x1400edfb7
movzx r9d, word [rsi]
cmp r9w, word [r14]
jne 0x1400edfb7
add r14, 2
add rsi, 2
cmp r14, qword [rsp + 0x50]
jae 0x1400edfce
movzx r9d, byte [rsi]
xor esi, esi
cmp r9b, byte [r14]
sete sil
add r14, rsi
sub r14, rdx
cmp r14, r12
jbe 0x1400eded0
mov r9d, dword [rsp + 0x70]
sub r9d, r8d
mov r8, qword [rsp + 0x98]
mov qword [r8], r9
lea r8, [rdx + r14]
mov r12, r14
cmp r8, qword [rsp + 0x50]
jne 0x1400eded0
jmp 0x1400ee007
mov r14d, 3
mov rax, qword [rsp + 0x90]
add r13, rax
add ebp, dword [rsp + 0x5c]
mov r9, qword [rsp + 0x80]
mov rcx, qword [r9]
mov rsi, qword [r9 + 8]
mov qword [rsp + 0x70], rcx
mov r12d, ecx
sub r12d, esi
sub r12d, eax
mov rax, qword [r9 + 0x70]
mov r10, qword [rsp + 0x68]
lea rcx, [r10*4]
mov r8d, dword [rax + r10*4]
prefetcht0 byte [rsi + r8]
mov r8, rcx
or r8, 4
mov r8d, dword [rax + r8]
prefetcht0 byte [rsi + r8]
or rcx, 8
mov ecx, dword [rax + rcx]
cmp ebp, 3
mov r8d, 3
cmovb r8d, ebp
prefetcht0 byte [rsi + rcx]
or r10, 3
mov r15d, dword [rax + r10*4]
mov rax, r15
shr rax, 8
mov rcx, qword [r9 + 0x80]
prefetcht0 byte [rcx + rax*4]
test r8d, r8d
je 0x1400ee182
mov qword [rsp + 0x68], r10
mov rdi, r13
lea rax, [rdx + 4]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x90], r12
lea eax, [rax + r12 + 3]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x5c], r8d
mov r15d, r8d
mov r13, r14
jmp 0x1400ee0d9
add rbx, 4
dec r15
je 0x1400ee157
mov rax, qword [r9 + 0x70]
mov r12d, dword [rax + rbx]
test r12, r12
je 0x1400ee14f
lea rdx, [rsi + r12]
mov eax, dword [rdx]
mov rcx, qword [rsp + 0x40]
cmp eax, dword [rcx]
jne 0x1400ee0d0
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x70]
call fcn.1400b81d0
mov r9, qword [rsp + 0x80]
mov r14, rax
add r14, 4
cmp r14, r13
jbe 0x1400ee0d0
mov eax, dword [rsp + 0x48]
sub eax, r12d
mov rcx, qword [rsp + 0x98]
mov qword [rcx], rax
mov rax, qword [rsp + 0x40]
add rax, r14
mov r13, r14
cmp rax, qword [rsp + 0x50]
jne 0x1400ee0d0
jmp 0x1400ee2d2
mov r14, r13
jmp 0x1400ee2d2
mov rax, qword [r9 + 0x70]
mov rcx, qword [rsp + 0x68]
mov r15d, dword [rax + rcx*4]
mov eax, r15d
shr eax, 8
mov r14, r13
mov rdx, qword [rsp + 0x40]
mov r13, rdi
mov r12, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x5c]
movzx ecx, r15b
sub ebp, r8d
cmp ebp, ecx
cmovae ebp, ecx
test ebp, ebp
je 0x1400ee2d2
mov rcx, qword [r9 + 0x80]
mov ebx, eax
mov r8d, ebp
mov eax, r8d
and eax, 3
cmp ebp, 4
jae 0x1400ee1b2
xor r9d, r9d
jmp 0x1400ee200
and r8d, 0xfc
lea r10, [rcx + rbx*4]
add r10, 0xc
xor r9d, r9d
nop word cs:[rax + rax]
mov r11d, dword [r10 + r9*4 - 0xc]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4 - 8]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4 - 4]
prefetcht0 byte [rsi + r11]
mov r11d, dword [r10 + r9*4]
prefetcht0 byte [rsi + r11]
add r9, 4
cmp r8, r9
jne 0x1400ee1d0
mov r10, r12
mov rdi, r13
test rax, rax
je 0x1400ee232
add r9, rbx
lea rcx, [rcx + r9*4]
shl rax, 2
xor r9d, r9d
nop dword [rax]
mov r8d, dword [rcx + r9]
prefetcht0 byte [rsi + r8]
add r9, 4
cmp rax, r9
jne 0x1400ee220
lea r12, [rdx + 4]
mov rax, qword [rsp + 0x60]
add eax, r10d
add eax, 3
mov dword [rsp + 0x30], eax
shr r15d, 8
mov r13d, dword [rdx]
mov r8, qword [rsp + 0x80]
jmp 0x1400ee26d
mov r13d, dword [rdx]
mov r14, rax
inc r15
dec ebp
je 0x1400ee2d2
mov rax, qword [r8 + 0x80]
mov ebx, dword [rax + r15*4]
cmp dword [rsi + rbx], r13d
jne 0x1400ee266
lea rdx, [rsi + rbx]
add rdx, 4
mov qword [rsp + 0x20], rdi
mov rcx, r12
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x70]
call fcn.1400b81d0
mov r8, qword [rsp + 0x80]
add rax, 4
cmp rax, r14
jbe 0x1400ee266
mov ecx, dword [rsp + 0x30]
sub ecx, ebx
mov rdx, qword [rsp + 0x98]
mov qword [rdx], rcx
mov rdx, qword [rsp + 0x40]
lea rcx, [rdx + rax]
cmp rcx, qword [rsp + 0x50]
jne 0x1400ee260
mov r14, rax
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.14011fde0
mov rax, r14
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret