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

Disassembly:
push rsi
push rdi
push r14
mov eax, 0x3610
call fcn.14022fc50
sub rsp, rax
mov rax, qword [0x1402de400]
xor rax, rsp
mov qword [rsp + 0x35b0], rax
xor eax, eax
mov rdi, rcx
mov qword [rsp + 0x3608], rbx
mov dword [rsp + 0x7c], eax
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x30], al
movzx eax, byte [rcx + 0x120c]
inc dword [rcx + 0x120c]
and al, 3
mov r14, rdx
mov qword [rsp + 0x60], rdx
mov byte [rcx + 0x12b2], al
movsxd rax, dword [rcx + 0x11f0]
mov qword [rsp + 0x3600], rbp
xor edx, edx
mov qword [rsp + 0x35f8], r12
mov rsi, r8
mov r8d, dword [rdi + 0x11e8]
mov dword [rsp + 0x38], edx
mov qword [rsp + 0x35f0], r13
lea r13, [rcx + rax*4 + 0x1c24]
lea rdx, [rdi + 0x13fa]
add rcx, 0x10
mov r12d, r9d
mov dword [rsp + 0x50], r9d
mov dword [rsp + 0x78], 0
mov qword [rsp + 0x98], r13
lea rbp, [rsp + rax*4 + 0x420]
call fcn.1401bcf70
mov eax, dword [rdi + 0x11e0]
mov r8d, dword [rdi + 0x11e8]
lea rdx, [rdi + 0x13fa]
lea eax, [rax + rax*4]
cdqe
lea rcx, [r13 + rax*4]
call fcn.1401b2f40
movsxd rcx, dword [rdi + 0x11e0]
movss xmm1, dword [0x1402a88f8]
lea rax, [rcx + rcx*4]
movss xmm0, dword [r13 + rax*4]
addss xmm0, xmm1
movss dword [r13 + rax*4], xmm0
movsxd rax, dword [rdi + 0x11e0]
lea rcx, [rax + rax*4]
movsxd rax, dword [rdi + 0x11e8]
sar rax, 3
add rcx, rax
movss xmm0, dword [r13 + rcx*4]
addss xmm0, xmm1
movss dword [r13 + rcx*4], xmm0
movsxd rax, dword [rdi + 0x11e0]
movsxd rdx, dword [rdi + 0x11e8]
lea rcx, [rax + rax*4]
sar rdx, 3
lea rax, [r13 + rcx*4]
movss xmm0, dword [rax + rdx*8]
subss xmm0, xmm1
movss dword [rax + rdx*8], xmm0
movsxd rax, dword [rdi + 0x11e8]
sar rax, 3
lea rdx, [rax + rax*2]
movsxd rax, dword [rdi + 0x11e0]
lea rcx, [rax + rax*4]
lea rax, [r13 + rcx*4]
movss xmm0, dword [rax + rdx*4]
subss xmm0, xmm1
movss dword [rax + rdx*4], xmm0
movsxd rax, dword [rdi + 0x11e0]
movsxd rdx, dword [rdi + 0x11e8]
lea rcx, [rax + rax*4]
sar rdx, 3
add rdx, rdx
lea rax, [r13 + rdx*8]
movss xmm0, dword [rax + rcx*4]
addss xmm0, xmm1
movss dword [rax + rcx*4], xmm0
movsxd rcx, dword [rdi + 0x11e8]
movsxd rax, dword [rdi + 0x11e0]
sar rcx, 3
add rcx, rax
lea rax, [rcx + rcx*4]
movss xmm0, dword [r13 + rax*4]
addss xmm0, xmm1
movss dword [r13 + rax*4], xmm0
movsxd rax, dword [rdi + 0x11e8]
sar rax, 3
lea rdx, [rax + rax*2]
movsxd rax, dword [rdi + 0x11e0]
lea rcx, [rax + rax*4]
lea rax, [r13 + rcx*4]
movss xmm0, dword [rax + rdx*8]
subss xmm0, xmm1
movss dword [rax + rdx*8], xmm0
movsxd rax, dword [rdi + 0x11e0]
movsxd rdx, dword [rdi + 0x11e8]
lea rcx, [rax + rax*4]
sar rdx, 3
imul rdx, rdx, 0x1c
lea rax, [r13 + rdx]
movss xmm0, dword [rax + rcx*4]
subss xmm0, xmm1
movss dword [rax + rcx*4], xmm0
cmp dword [rdi + 0x1248], 0
jne 0x1401b3e52
mov eax, dword [rdi + 0x13f4]
mov qword [rsp + 0x35e8], r15
lea r8, [rsp + 0x420]
movaps xmmword [rsp + 0x35d0], xmm6
movaps xmmword [rsp + 0x35c0], xmm7
lea rdx, [rsp + 0x130]
mov r9, r13
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1401bca50
lea rdx, [rsp + 0x130]
mov r9, r13
mov r8, rbp
mov rcx, rdi
call fcn.1401bc250
lea rdx, [rsp + 0x130]
mov r9, r13
mov r8, rbp
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.1401bb6f0
lea rdx, [rsp + 0x130]
mov r8d, r12d
mov rcx, rdi
call fcn.1401bb3d0
lea rdx, [rsp + 0x130]
mov r9d, r12d
mov r8, r13
mov rcx, rdi
call fcn.1401b30c0
mov edx, dword [rdi + 0x11e4]
xor r14d, r14d
lea rbx, [rdi + 0x1290]
mov r15d, 0x100
mov dword [rsp + 0x68], r14d
mov rcx, rbx
mov dword [rsp + 0x54], r14d
call fcn.1401bb3a0
mov rcx, qword [rsi]
lea rdx, [rsp + 0xf8]
mov qword [rdx], rcx
mov rcx, qword [rsi + 8]
mov r12d, eax
mov rax, qword [rsi + 0x28]
mov qword [rdx + 8], rcx
mov rcx, qword [rsi + 0x10]
mov qword [rdx + 0x10], rcx
mov rcx, qword [rsi + 0x18]
mov r8d, 0x1100
mov qword [rdx + 0x18], rcx
mov rcx, qword [rsi + 0x20]
mov dword [rsp + 0x44], 0xffffffff
mov qword [rdx + 0x20], rcx
mov qword [rdx + 0x28], rax
mov rax, qword [rsi + 0x30]
mov qword [rdx + 0x30], rax
lea rcx, [rsp + 0x1fa0]
lea rdx, [rdi + 0x94]
mov dword [rsp + 0x4c], 0xffffffff
call fcn.1401e3ed0
movsx eax, byte [rdi + 0x12b2]
movss xmm7, dword [0x14027e7cc]
movss xmm6, dword [0x14027eec8]
mov ebp, dword [rsp + 0x3650]
mov dword [rsp + 0x70], eax
movzx eax, word [rdi + 0x169c]
mov word [rsp + 0x3c], ax
mov eax, dword [rdi + 0x1698]
xor r13d, r13d
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x58], r13d
nop dword [rax + rax]
mov ecx, dword [rsp + 0x44]
cmp r12d, ecx
jne 0x1401b36a2
mov ebx, dword [rsp + 0x34]
jmp 0x1401b3977
cmp r12d, dword [rsp + 0x4c]
jne 0x1401b36b2
mov ebx, dword [rsp + 0x48]
jmp 0x1401b3977
test r13d, r13d
jle 0x1401b372f
lea rcx, [rsp + 0xf8]
lea rdx, [rsp + 0x1fa0]
mov r8d, 0x1100
mov rax, qword [rcx]
mov qword [rsi], rax
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [rsi + 0x18], rax
mov rax, qword [rcx + 0x20]
mov qword [rsi + 0x20], rax
mov rax, qword [rcx + 0x28]
mov qword [rsi + 0x28], rax
mov rax, qword [rcx + 0x30]
lea rcx, [rdi + 0x94]
mov qword [rsi + 0x30], rax
call fcn.1401e3ed0
mov eax, dword [rsp + 0x70]
mov byte [rdi + 0x12b2], al
mov ax, word [rsp + 0x3c]
mov word [rdi + 0x169c], ax
mov eax, dword [rsp + 0x6c]
mov dword [rdi + 0x1698], eax
mov rax, qword [rsp + 0x98]
lea rbp, [rdi + 0x12b4]
lea r9, [rdi + 0x94]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x130]
mov r8, rbx
mov rcx, rdi
mov qword [rsp + 0x20], rbp
call fcn.1401baa20
cmp r13d, 6
jne 0x1401b37ab
test r14d, r14d
jne 0x1401b37ab
mov rax, qword [rsi]
lea rcx, [rsp + 0xc0]
mov qword [rcx], rax
mov rax, qword [rsi + 8]
mov qword [rcx + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rsi + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rsi + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [rsi + 0x28]
mov qword [rcx + 0x28], rax
mov rax, qword [rsi + 0x30]
mov qword [rcx + 0x30], rax
mov eax, dword [rsp + 0x50]
mov r8d, dword [rdi + 0x1684]
xor r9d, r9d
mov rdx, rsi
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1401b4ee0
mov eax, dword [rdi + 0x11e8]
movsx r8d, byte [rdi + 0x12ae]
movsx edx, byte [rdi + 0x12ad]
mov r9, rbp
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1401b49a0
bsr eax, dword [rsi + 0x20]
mov ebx, dword [rsi + 0x18]
sub ebx, eax
dec ebx
cmp r13d, 6
jne 0x1401b393b
test r14d, r14d
jne 0x1401b3932
mov eax, dword [rsp + 0x3650]
cmp ebx, eax
jle 0x1401b3942
movzx edx, byte [rsp + 0x418]
lea rcx, [rsp + 0xc0]
mov rax, qword [rcx]
mov qword [rsi], rax
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [rsi + 0x18], rax
mov rax, qword [rcx + 0x20]
mov qword [rsi + 0x20], rax
mov rax, qword [rcx + 0x28]
mov qword [rsi + 0x28], rax
mov rax, qword [rcx + 0x30]
xor ecx, ecx
mov qword [rsi + 0x30], rax
cmp dword [rdi + 0x11e4], ecx
mov byte [rdi + 0x1c18], dl
jle 0x1401b3892
lea r8, [rdi + 0x1290]
mov rax, r8
nop dword [rax]
mov byte [rax], 4
inc ecx
inc rax
cmp ecx, dword [rdi + 0x11e4]
jl 0x1401b3880
jmp 0x1401b3899
lea r8, [rdi + 0x1290]
mov r9d, dword [rsp + 0x50]
cmp r9d, 2
je 0x1401b38a7
mov byte [r8], dl
mov ax, word [rsp + 0x3c]
xor ecx, ecx
cmp dword [rdi + 0x11e8], ecx
mov word [rdi + 0x169c], ax
mov eax, dword [rsp + 0x6c]
mov dword [rdi + 0x1698], eax
jle 0x1401b38e0
mov rax, rbp
nop word [rax + rax]
mov byte [rax], 0
inc ecx
inc rax
cmp ecx, dword [rdi + 0x11e8]
jl 0x1401b38d0
mov r8d, dword [rdi + 0x1684]
mov dword [rsp + 0x20], r9d
mov rdx, rsi
xor r9d, r9d
mov rcx, rdi
call fcn.1401b4ee0
mov eax, dword [rdi + 0x11e8]
movsx r8d, byte [rdi + 0x12ae]
movsx edx, byte [rdi + 0x12ad]
mov r9, rbp
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.1401b49a0
bsr eax, dword [rsi + 0x20]
mov ebx, dword [rsi + 0x18]
sub ebx, eax
mov eax, dword [rsp + 0x3650]
dec ebx
jmp 0x1401b3942
mov eax, dword [rsp + 0x3650]
jmp 0x1401b3942
mov eax, dword [rsp + 0x3650]
cmp dword [rsp + 0x3658], 0
jne 0x1401b396c
test r13d, r13d
jne 0x1401b395f
cmp ebx, eax
jg 0x1401b3990
mov r14, qword [rsp + 0x60]
jmp 0x1401b3e3a
mov ebp, dword [rsp + 0x3650]
mov ecx, dword [rsp + 0x44]
jmp 0x1401b3977
mov ebp, dword [rsp + 0x3650]
mov ecx, dword [rsp + 0x44]
cmp r13d, 6
je 0x1401b3d90
mov eax, dword [rsp + 0x3650]
cmp ebx, eax
jle 0x1401b3af5
test r14d, r14d
jne 0x1401b39da
cmp r13d, 2
jl 0x1401b39da
movss xmm0, dword [rsp + 0x3e4]
mulss xmm0, xmm7
comiss xmm0, xmm7
jbe 0x1401b39b8
movss dword [rsp + 0x3e4], xmm0
jmp 0x1401b39c1
movss dword [rsp + 0x3e4], xmm7
mov byte [rdi + 0x12ae], 0
mov dword [rsp + 0x54], 0
mov dword [rsp + 0x4c], 0xffffffff
jmp 0x1401b39fc
movsx eax, r15w
mov dword [rsp + 0x54], 1
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x38], eax
test r14d, r14d
jne 0x1401b3bac
xor ebp, ebp
movsxd rax, r13d
cmp dword [rdi + 0x11e4], ebp
mov qword [rsp + 0x88], rax
jle 0x1401b3bb7
movsxd rax, dword [rdi + 0x11ec]
mov rdx, qword [rsp + 0x88]
xor r11d, r11d
lea r12, [rsp + 0x30a0]
lea r14, [rdi + 0x12b4]
xor r10d, r10d
mov r13d, eax
mov rcx, rax
mov qword [rsp + 0x90], rax
xor r8d, r8d
cmp r11d, r13d
jge 0x1401b3a8b
lea r9d, [rbp + 1]
mov rcx, r14
imul r9d, dword [rdi + 0x11ec]
sub r9d, r11d
movsx eax, byte [rcx]
inc rcx
cdq
xor eax, edx
sub eax, edx
add r8d, eax
sub r9, 1
jne 0x1401b3a61
mov eax, dword [rdi + 0x11ec]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x1401b3aad
cmp r8d, dword [rsp + r10 + 0xb0]
jge 0x1401b3aa2
cmp dword [rsp + r10 + 0x78], 0
je 0x1401b3aad
mov dword [rsp + r10 + 0x78], 1
jmp 0x1401b3aba
mov dword [rsp + r10 + 0xb0], r8d
mov word [r12], r15w
inc ebp
add r11d, eax
add r14, rcx
add r13d, eax
add r10, 4
add r12, 2
cmp ebp, dword [rdi + 0x11e4]
jl 0x1401b3a47
mov r13d, dword [rsp + 0x58]
mov r14d, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x38]
mov edx, dword [rsp + 0x34]
jmp 0x1401b3bca
add eax, 0xfffffffb
cmp ebx, eax
jge 0x1401b3e27
mov r14d, 1
movsx r9d, r15w
mov edx, ebx
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x40], r9d
cmp r12d, ecx
je 0x1401b3bc6
mov rax, qword [rsi]
mov r8d, dword [rsi + 0x1c]
mov rdx, qword [rsi]
lea rcx, [rsp + 0xc0]
mov dword [rsp + 0x44], r12d
mov qword [rcx], rax
mov rax, qword [rsi + 8]
mov qword [rcx + 8], rax
mov rax, qword [rsi + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rsi + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rsi + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [rsi + 0x28]
mov qword [rcx + 0x28], rax
mov rax, qword [rsi + 0x30]
mov qword [rcx + 0x30], rax
lea rcx, [rsp + 0x30b0]
call fcn.1401e3ed0
lea rdx, [rdi + 0x94]
lea rcx, [rsp + 0xea0]
mov r8d, 0x1100
call fcn.1401e3ed0
movzx eax, byte [rdi + 0x1c18]
mov r9d, dword [rsp + 0x40]
mov byte [rsp + 0x30], al
mov eax, dword [rsp + 0x38]
mov edx, ebx
jmp 0x1401b3bca
mov r9d, dword [rsp + 0x40]
mov edx, dword [rsp + 0x34]
jmp 0x1401b3bca
mov r9d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x38]
mov edx, dword [rsp + 0x34]
jmp 0x1401b3bca
mov eax, dword [rsp + 0x38]
test dword [rsp + 0x54], r14d
jne 0x1401b3c31
mov ebp, dword [rsp + 0x3650]
cmp ebx, ebp
jle 0x1401b3bfe
mov eax, 0x4000
cmp r15w, ax
jge 0x1401b3bf0
add r15w, r15w
jmp 0x1401b3c85
mov eax, 0x7fff
mov r15w, ax
jmp 0x1401b3c85
mov ecx, ebp
shl ebx, 7
shl ecx, 7
sub ebx, ecx
mov eax, ebx
cdq
idiv dword [rdi + 0x11e8]
lea ecx, [rax + 0x800]
call fcn.1401a3f90
movsx rcx, r15w
mov r11d, eax
imul r11, rcx
sar r11, 0x10
mov r15w, r11w
jmp 0x1401b3c85
mov ebp, dword [rsp + 0x3650]
mov ecx, dword [rsp + 0x48]
mov r8d, eax
sub ecx, edx
sub r8d, r9d
mov eax, ebp
sub eax, edx
imul eax, r8d
sar r8d, 2
cdq
idiv ecx
add ax, r9w
movsx r15d, ax
lea eax, [r8 + r9]
cmp r15d, eax
mov ecx, r15d
jle 0x1401b3c6d
lea r15d, [r9 + r8]
jmp 0x1401b3c85
mov edx, dword [rsp + 0x38]
mov eax, edx
sub eax, r8d
cmp ecx, eax
jge 0x1401b3c85
movzx eax, dx
sub ax, r8w
mov r15w, ax
mov r10d, dword [rdi + 0x11e4]
test r10d, r10d
jle 0x1401b3cfc
lea r8, [rsp + 0x30a0]
xor edx, edx
mov r9d, r10d
mov r13d, 0xff800000
cmp dword [rsp + rdx + 0x78], 0
je 0x1401b3cb1
movzx eax, word [r8]
jmp 0x1401b3cb5
mov ax, r15w
movsxd rcx, dword [rsp + rdx + 0x408]
movsx rax, ax
imul rcx, rax
sar rcx, 0x10
cmp ecx, 0x7fffff
jle 0x1401b3cd8
mov ecx, 0x7fffff
jmp 0x1401b3cdf
cmp ecx, r13d
cmovl ecx, r13d
shl ecx, 8
add rdx, 4
add r8, 2
sub r9, 1
mov dword [rsp + rdx + 0x9c], ecx
jne 0x1401b3ca4
mov r13d, dword [rsp + 0x58]
movzx eax, byte [rsp + 0x418]
xor r9d, r9d
cmp dword [rsp + 0x50], 2
lea r8, [rdi + 0x1c18]
lea rbx, [rdi + 0x1290]
lea rdx, [rsp + 0xa0]
sete r9b
mov rcx, rbx
mov dword [rsp + 0x20], r10d
mov byte [r8], al
call fcn.1401bb130
mov edx, dword [rdi + 0x11e4]
mov rcx, rbx
call fcn.1401bb3a0
cmp dword [rdi + 0x11e4], 0
mov r12d, eax
jle 0x1401b3d83
mov ecx, dword [rdi + 0x11e4]
xor eax, eax
nop dword [rax + rax]
movd xmm0, dword [rsp + rax + 0xa0]
add rax, 4
sub rcx, 1
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
movss dword [rsp + rax + 0x12c], xmm0
jne 0x1401b3d60
inc r13d
mov dword [rsp + 0x58], r13d
jmp 0x1401b3690
test r14d, r14d
je 0x1401b3e35
cmp r12d, ecx
je 0x1401b3da6
cmp ebx, ebp
jle 0x1401b3e2e
mov r8d, dword [rsp + 0xdc]
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x30b0]
mov rax, qword [rcx]
mov qword [rsi], rax
mov rax, qword [rcx + 8]
mov qword [rsi + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [rsi + 0x18], rax
mov rax, qword [rcx + 0x20]
mov qword [rsi + 0x20], rax
mov rax, qword [rcx + 0x28]
mov qword [rsi + 0x28], rax
mov rax, qword [rcx + 0x30]
mov qword [rsi + 0x30], rax
mov rcx, qword [rsi]
call fcn.1401e3ed0
lea rdx, [rsp + 0xea0]
lea rcx, [rdi + 0x94]
mov r8d, 0x1100
call fcn.1401e3ed0
mov al, byte [rsp + 0x30]
mov r14, qword [rsp + 0x60]
mov byte [rdi + 0x1c18], al
jmp 0x1401b3e3a
mov r14, qword [rsp + 0x60]
jmp 0x1401b3e3a
mov r14, qword [rsp + 0x60]
jmp 0x1401b3e3a
mov r14, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x35d0]
mov r15, qword [rsp + 0x35e8]
movaps xmm7, xmmword [rsp + 0x35c0]
mov eax, dword [rdi + 0x11e0]
lea ecx, [rax + rax*4]
movsxd rax, dword [rdi + 0x11e8]
add ecx, dword [rdi + 0x11f0]
lea rdx, [rdi + rax*4 + 0x1c24]
movsxd r8, ecx
lea rcx, [rdi + 0x1c24]
shl r8, 2
call fcn.1401e3ed0
cmp dword [rdi + 0x1248], 0
mov r13, qword [rsp + 0x35f0]
mov r12, qword [rsp + 0x35f8]
mov rbp, qword [rsp + 0x3600]
mov rbx, qword [rsp + 0x3608]
je 0x1401b3eb5
mov dword [r14], 0
jmp 0x1401b3ef2
movsxd rax, dword [rdi + 0x11e4]
mov dword [rdi + 0x1238], 0
mov ecx, dword [rsp + rax*4 + 0x210]
movzx eax, byte [rdi + 0x12ad]
mov dword [rdi + 0x11c0], ecx
mov byte [rdi + 0x11bd], al
bsr eax, dword [rsi + 0x20]
mov ecx, dword [rsi + 0x18]
sub ecx, eax
add ecx, 6
sar ecx, 3
mov dword [r14], ecx
xor eax, eax
mov rcx, qword [rsp + 0x35b0]
xor rcx, rsp
call fcn.1401e42a0
add rsp, 0x3610
pop r14
pop rdi
pop rsi
ret