Function at 0x1404c31b0
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, 0xf8
movdqa xmmword [rsp + 0xe0], xmm8
movdqa xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm6
mov r14, rdx
mov qword [rsp + 0x78], rcx
mov edx, dword [rsp + 0x160]
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0xb8], rax
mov eax, edx
sub eax, r9d
cmp eax, 2
jb 0x1404c3b38
mov r12d, r9d
cmp edx, r9d
jbe 0x1404c3b38
mov rsi, r8
mov r8, qword [r8 + 0x68]
mov r13d, 0x1c00
xorps xmm6, xmm6
movdqa xmm7, xmmword [0x140599730]
mov qword [rsp + 0x88], r8
jmp 0x1404c3250
mov eax, r12d
inc eax
mov r12d, eax
cmp eax, edx
jae 0x1404c3b38
mov ebx, r12d
lea r15, [rbx + rbx*4]
mov eax, dword [r8 + r15*4 + 0x10]
bt r13d, eax
jb 0x1404c3240
lea ebp, [r12 + 1]
cmp edx, ebp
mov eax, ebp
cmova eax, edx
lea ecx, [rax - 1]
mov dword [rsp + 0x4c], ecx
mov edi, r12d
nop dword [rax + rax]
inc edi
cmp edi, edx
jae 0x1404c32a0
mov ecx, edi
lea rcx, [rcx + rcx*4]
mov ecx, dword [r8 + rcx*4 + 0x10]
bt r13d, ecx
jb 0x1404c3280
lea eax, [rdi - 1]
mov dword [rsp + 0x4c], eax
jmp 0x1404c32a2
mov edi, eax
mov r9d, dword [rsi + 0x58]
cmp r9d, edi
cmovae r9d, edi
mov eax, r9d
sub eax, r12d
cmp eax, 2
jb 0x1404c34b6
or byte [rsi + 0xb4], 0x20
mov rdx, qword [rsi + 0x68]
mov r8d, 0xffffffff
cmp r9d, r12d
je 0x1404c349e
cmp dword [rsi + 0x1c], 2
jne 0x1404c3485
cmp r9d, r12d
jbe 0x1404c349e
mov eax, r9d
mov r10, rax
sub r10, rbx
mov rcx, rbx
cmp r10, 9
jb 0x1404c3452
mov r8d, r10d
and r8d, 7
mov ecx, 8
cmove r8, rcx
sub r10, r8
mov rcx, r10
add rcx, rbx
add r8, rbx
sub r8, rax
lea r10, [rdx + r15*4]
add r10, 0x94
pcmpeqd xmm0, xmm0
pcmpeqd xmm1, xmm1
nop word cs:[rax + rax]
movd xmm2, dword [r10 - 0x50]
movd xmm3, dword [r10 - 0x64]
punpckldq xmm3, xmm2
movd xmm2, dword [r10 - 0x78]
movd xmm4, dword [r10 - 0x8c]
punpckldq xmm4, xmm2
punpcklqdq xmm4, xmm3
movd xmm2, dword [r10]
movd xmm3, dword [r10 - 0x14]
punpckldq xmm3, xmm2
movd xmm2, dword [r10 - 0x28]
movd xmm5, dword [r10 - 0x3c]
punpckldq xmm5, xmm2
punpcklqdq xmm5, xmm3
movdqa xmm2, xmm0
movdqa xmm3, xmm4
pxor xmm3, xmm7
pxor xmm0, xmm7
pcmpgtd xmm3, xmm0
pand xmm2, xmm3
pandn xmm3, xmm4
movdqa xmm0, xmm3
por xmm0, xmm2
movdqa xmm2, xmm1
movdqa xmm3, xmm5
pxor xmm3, xmm7
pxor xmm1, xmm7
pcmpgtd xmm3, xmm1
pand xmm2, xmm3
pandn xmm3, xmm5
movdqa xmm1, xmm3
por xmm1, xmm2
add r10, 0xa0
add r8, 8
jne 0x1404c3340
movdqa xmm2, xmm0
pxor xmm2, xmm7
movdqa xmm3, xmm1
pxor xmm3, xmm7
pcmpgtd xmm3, xmm2
pand xmm0, xmm3
pandn xmm3, xmm1
por xmm3, xmm0
pshufd xmm0, xmm3, 0xee
movdqa xmm1, xmm3
pxor xmm1, xmm7
movdqa xmm2, xmm0
pxor xmm2, xmm7
pcmpgtd xmm2, xmm1
pand xmm3, xmm2
pandn xmm2, xmm0
por xmm2, xmm3
pshufd xmm0, xmm2, 0x55
movdqa xmm1, xmm2
pxor xmm1, xmm7
movdqa xmm3, xmm0
pxor xmm3, xmm7
pcmpgtd xmm3, xmm1
pand xmm2, xmm3
pandn xmm3, xmm0
por xmm3, xmm2
movd r8d, xmm3
sub rax, rcx
lea rcx, [rcx + rcx*4]
lea rcx, [rdx + rcx*4]
add rcx, 8
nop word cs:[rax + rax]
mov r10d, dword [rcx]
cmp r8d, r10d
cmovae r8d, r10d
add rcx, 0x14
dec rax
jne 0x1404c3470
jmp 0x1404c349e
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
mov ecx, dword [rdx + r15*4 + 8]
mov r8d, dword [rdx + rax*4 + 8]
cmp ecx, r8d
cmovb r8d, ecx
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x28], 3
mov rcx, rsi
mov r8d, r12d
call fcn.14034bed0
mov rax, qword [rsi + 0x68]
mov r8d, dword [rax + r15*4]
movaps xmmword [rsp + 0x90], xmm6
mov rax, qword [r14 + 0x90]
mov rcx, qword [rax + 0x10]
mov rax, qword [rax + 0x88]
test rcx, rcx
je 0x1404c34e3
mov rcx, qword [rcx + 0x68]
jmp 0x1404c34e5
xor ecx, ecx
mov rdx, qword [r14 + 0x98]
mov qword [rsp + 0x20], rcx
mov rcx, r14
lea r9, [rsp + 0x90]
call rax
test eax, eax
je 0x1404c3541
mov rax, qword [rsi + 0x78]
shl rbx, 2
lea rcx, [rbx + rbx*4]
mov eax, dword [rax + rcx + 0xc]
add dword [rsp + 0x94], eax
mov dword [rsp + 0x90], 0
mov rax, qword [r14 + 0x90]
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1404c35ce
mov r9, qword [rdx + 0x28]
jmp 0x1404c35d1
cmp ebp, edi
jae 0x1404c3b20
mov rax, qword [rsi + 0x68]
mov r8d, ebp
mov ecx, edi
lea rdx, [r8*4]
lea rdx, [rdx + rdx*4]
sub rcx, r8
jmp 0x1404c3596
mov r8, qword [rsi + 0x78]
mov dword [r8 + rdx], 0
mov r8, qword [rsi + 0x78]
mov dword [r8 + rdx + 4], 0
add rdx, 0x14
dec rcx
je 0x1404c3b20
movzx r8d, word [rax + rdx + 0x10]
and r8d, 0x1f
cmp r8w, 0xc
jne 0x1404c3589
cmp byte [rsp + 0x168], 0
je 0x1404c3570
mov r8, qword [rsi + 0x78]
mov r9d, dword [r8 + rdx]
sub dword [r8 + rdx + 8], r9d
mov r8, qword [rsi + 0x78]
mov r9d, dword [r8 + rdx + 4]
sub dword [r8 + rdx + 0xc], r9d
jmp 0x1404c3570
xor r9d, r9d
mov rdx, qword [rsi + 0x68]
mov r8d, dword [rdx + rcx]
mov rdx, qword [r14 + 0x98]
mov rcx, r14
call qword [rax + 0x48]
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x98], eax
mov r11, qword [rsi + 0x68]
movzx eax, byte [r11 + r15*4 + 0xe]
mov ecx, eax
and ecx, 0xf
mov dword [rsp + 0x60], eax
test al, 0x10
mov eax, 1
cmove ecx, eax
test byte [r11 + r15*4 + 0xc], 4
cmove ecx, eax
mov dword [rsp + 0x64], ecx
mov eax, dword [rsi + 0x30]
and eax, 0xfffffffd
pxor xmm8, xmm8
cmp eax, 4
jne 0x1404c363a
mov rax, qword [rsi + 0x78]
movq xmm0, qword [rax + r15*4]
psubd xmm8, xmm0
cmp ebp, edi
jae 0x1404c3b20
mov ecx, dword [rsp + 0x9c]
mov r8d, dword [rsp + 0x90]
mov edx, dword [rsp + 0x94]
mov eax, ebp
shl rax, 2
lea rbp, [rax + rax*4]
not r12d
add r12d, edi
mov eax, 0xffffffff
mov dword [rsp + 0x38], 0xff
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x54], r8d
mov qword [rsp + 0x40], r8
mov dword [rsp + 0x58], edx
mov r10d, edx
mov edx, dword [rsp + 0x3c]
mov qword [rsp + 0x68], rdx
mov dword [rsp + 0x5c], ecx
mov ebx, ecx
mov qword [rsp + 0x70], r11
jmp 0x1404c36c6
paddd xmm8, xmm0
mov edi, eax
add rbp, 0x14
mov eax, edi
dec r12d
je 0x1404c3b20
movzx ecx, word [r11 + rbp + 0x10]
mov r8d, 1
shl r8d, cl
and r8d, 0x1c00
je 0x1404c3760
movzx edx, cx
cmp edx, 0x100
jb 0x1404c3760
mov edi, dword [rsp + 0x64]
cmp edi, 2
jb 0x1404c3790
mov qword [rsp + 0x80], rbx
mov rbx, r10
mov r15, r14
movzx edx, byte [r11 + rbp + 0xe]
mov r9d, edx
and r9b, 0xf
test dl, 0x10
movzx r9d, r9b
mov r10d, 0
cmovne r9d, r10d
movzx r9d, r9b
xor dl, byte [rsp + 0x60]
mov r14d, edi
cmp edi, r9d
jb 0x1404c3739
mov r14d, r9d
cmp dl, 0x20
cmovae r14d, edi
cmp byte [rsp + 0x60], 0x20
cmovb r14d, edi
lea edi, [r14 - 1]
cmp eax, edi
mov r10, rbx
jne 0x1404c3794
mov edi, eax
jmp 0x1404c37fd
mov ecx, dword [rsi + 0x30]
and ecx, 0xfffffffd
mov rdx, qword [rsi + 0x78]
movq xmm0, qword [rdx + rbp]
cmp ecx, 4
jne 0x1404c36b0
psubd xmm8, xmm0
jmp 0x1404c36b5
mov edi, eax
jmp 0x1404c3808
mov r11d, dword [rsp + 0x90]
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x58], eax
mov r13d, dword [rsp + 0x98]
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x5c], eax
mov edx, dword [rsp + 0x50]
test edx, edx
je 0x1404c3aca
mov r9d, dword [rsp + 0x64]
mov eax, r9d
sub eax, r14d
mov dword [rsp + 0x50], edx
cmp edx, 4
cmove eax, edi
imul eax, r13d
cdq
idiv r9d
add eax, r11d
mov dword [rsp + 0x54], eax
mov eax, r13d
cdq
idiv r9d
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0x38], 0xff
mov r14, r15
mov rbx, qword [rsp + 0x80]
movzx r13d, cx
shr r13d, 8
test r8d, r8d
cmove r13d, r8d
cmp dword [rsp + 0x38], r13d
je 0x1404c3842
mov eax, dword [rsp + 0x5c]
mov ebx, eax
mov eax, dword [rsp + 0x3c]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x58]
mov r10d, eax
mov eax, dword [rsp + 0x54]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x38], r13d
mov rax, qword [rsi + 0x68]
mov r8d, dword [rax + rbp]
movaps xmmword [rsp + 0xa0], xmm6
mov rax, qword [r14 + 0x90]
mov rcx, qword [rax + 0x10]
mov rax, qword [rax + 0x88]
mov r15, r10
test rcx, rcx
je 0x1404c3872
mov rcx, qword [rcx + 0x68]
jmp 0x1404c3874
xor ecx, ecx
mov rdx, qword [r14 + 0x98]
mov qword [rsp + 0x20], rcx
mov rcx, r14
lea r9, [rsp + 0xa0]
call rax
test eax, eax
je 0x1404c3915
mov ecx, dword [r14 + 0x2c]
lea edx, [rcx + 0xf]
test ecx, ecx
cmovns edx, ecx
mov rax, qword [rsi + 0x78]
mov qword [rax + rbp + 8], 0
movzx r8d, r13b
add r8d, 0xffffff38
cmp r8d, 0x22
mov r13d, 0x1c00
mov r11, qword [rsp + 0x70]
ja 0x1404c398a
mov r9d, 0x10040001
bt r9, r8
jb 0x1404c3928
movabs r9, 0x100410000
bt r9, r8
jae 0x1404c393a
mov r10d, dword [rsp + 0xa8]
mov r9, qword [rsp + 0x68]
mov r13, qword [rsp + 0x40]
add r9d, r13d
mov r13d, 0x1c00
add r10d, dword [rsp + 0xa0]
sub r9d, r10d
jmp 0x1404c39c0
mov r13d, 0x1c00
mov r11, qword [rsp + 0x70]
mov r10, r15
jmp case.0x1404c39e3.1
mov r9, qword [rsp + 0x40]
sub r9d, dword [rsp + 0xa0]
jmp 0x1404c39c0
movabs r9, 0x600000000
bt r9, r8
jae 0x1404c398a
mov r9d, dword [rsi + 0x30]
cmp r9d, 5
je 0x1404c3aa8
cmp r9d, 4
jne 0x1404c398a
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x40]
add r9d, r10d
mov r10d, dword [rsp + 0xa8]
mov r11d, r10d
shr r11d, 0x1f
add r11d, r10d
sar r11d, 1
sub r9d, r11d
mov r11, qword [rsp + 0x70]
jmp 0x1404c392d
mov r9, qword [rsp + 0x68]
sub r9d, dword [rsp + 0xa8]
mov r10d, r9d
shr r10d, 0x1f
add r10d, r9d
sar r10d, 1
mov r9, qword [rsp + 0x40]
sub r9d, dword [rsp + 0xa0]
add r9d, r10d
nop word cs:[rax + rax]
mov r10, r15
mov dword [rax + rbp + 8], r9d
cmp r8d, 0x22
ja case.0x1404c39e3.1
sar edx, 4
lea r9, [0x1404c3b78]
movsxd r8, dword [r9 + r8*4]
add r8, r9
jmp r8
sub ebx, edx
lea edx, [rbx + r10]
sub edx, dword [rsp + 0xa4]
cmp ecx, 0x10
setl r8b
test edx, edx
setg r9b
xor ecx, ecx
xor r9b, r8b
jne 0x1404c3a58
mov r8d, edx
jmp 0x1404c3a5d
add r10d, edx
sub ebx, edx
mov r8d, dword [rsp + 0xa4]
add r8d, dword [rsp + 0xac]
mov edx, r10d
sub edx, r8d
cmp ecx, 0x10
setl cl
test edx, edx
setg r8b
xor r8b, cl
jne 0x1404c3a48
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar ecx, 1
sub r10d, ecx
add ebx, ecx
sub edx, ecx
mov dword [rax + rbp + 0xc], edx
mov eax, dword [rsp + 0xac]
sub r10d, eax
jmp 0x1404c3a6b
xor r8d, r8d
mov ecx, edx
sub ebx, ecx
mov dword [rax + rbp + 0xc], r8d
mov eax, dword [rsp + 0xac]
add ebx, eax
mov rax, qword [rsi + 0x78]
mov dword [rax + rbp], 0
mov rax, qword [rsi + 0x78]
mov dword [rax + rbp + 4], 0
mov rax, qword [rsi + 0x78]
movd ecx, xmm8
add dword [rax + rbp + 8], ecx
mov rax, qword [rsi + 0x78]
pshufd xmm0, xmm8, 0x55
movd ecx, xmm0
add dword [rax + rbp + 0xc], ecx
jmp 0x1404c36b7
mov r9d, dword [rsp + 0xa8]
mov r10d, r9d
shr r10d, 0x1f
add r10d, r9d
sar r10d, 1
mov r9, qword [rsp + 0x40]
sub r9d, r10d
jmp 0x1404c392d
mov rax, qword [rsp + 0x78]
mov edx, dword [rax]
mov eax, edx
and eax, 0xfffffffe
cmp eax, 4
je 0x1404c37c6
mov rax, qword [rsp + 0x78]
mov ecx, dword [rax + 4]
mov dword [rsp + 0x38], r11d
call fcn.140342aa0
mov r11d, dword [rsp + 0x38]
mov r10, rbx
mov edx, eax
mov rax, qword [rsp + 0x70]
movzx ecx, word [rax + rbp + 0x10]
mov r8d, 1
shl r8d, cl
and r8d, 0x1c00
jmp 0x1404c37c6
mov edx, dword [rsp + 0x160]
mov r8, qword [rsp + 0x88]
mov eax, dword [rsp + 0x4c]
jmp 0x1404c3243
mov rcx, qword [rsp + 0xb8]
xor rcx, rsp
call fcn.1405602f0
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret