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

Disassembly:
push rsi
push rdi
push r14
mov eax, 0x3610
call fcn.140232c50
sub rsp, rax
mov rax, qword [0x1402e0068]
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.1401bfef0
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.1401b5d90
movsxd rcx, dword [rdi + 0x11e0]
movss xmm1, dword [0x1402ab5b8]
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 0x1401b6ca2
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.1401bf9d0
lea rdx, [rsp + 0x130]
mov r9, r13
mov r8, rbp
mov rcx, rdi
call fcn.1401bf1d0
lea rdx, [rsp + 0x130]
mov r9, r13
mov r8, rbp
mov rcx, rdi
mov dword [rsp + 0x20], r12d
call fcn.1401be670
lea rdx, [rsp + 0x130]
mov r8d, r12d
mov rcx, rdi
call fcn.1401be350
lea rdx, [rsp + 0x130]
mov r9d, r12d
mov r8, r13
mov rcx, rdi
call fcn.1401b5f10
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.1401be320
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.1401e75a0
movsx eax, byte [rdi + 0x12b2]
movss xmm7, dword [0x1402813cc]
movss xmm6, dword [0x140281ac4]
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 0x1401b64f2
mov ebx, dword [rsp + 0x34]
jmp 0x1401b67c7
cmp r12d, dword [rsp + 0x4c]
jne 0x1401b6502
mov ebx, dword [rsp + 0x48]
jmp 0x1401b67c7
test r13d, r13d
jle 0x1401b657f
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.1401e75a0
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.1401bd9a0
cmp r13d, 6
jne 0x1401b65fb
test r14d, r14d
jne 0x1401b65fb
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.1401b7e60
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.1401b7920
bsr eax, dword [rsi + 0x20]
mov ebx, dword [rsi + 0x18]
sub ebx, eax
dec ebx
cmp r13d, 6
jne 0x1401b678b
test r14d, r14d
jne 0x1401b6782
mov eax, dword [rsp + 0x3650]
cmp ebx, eax
jle 0x1401b6792
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 0x1401b66e2
lea r8, [rdi + 0x1290]
mov rax, r8
nop dword [rax]
mov byte [rax], 4
inc ecx
inc rax
cmp ecx, dword [rdi + 0x11e4]
jl 0x1401b66d0
jmp 0x1401b66e9
lea r8, [rdi + 0x1290]
mov r9d, dword [rsp + 0x50]
cmp r9d, 2
je 0x1401b66f7
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 0x1401b6730
mov rax, rbp
nop word [rax + rax]
mov byte [rax], 0
inc ecx
inc rax
cmp ecx, dword [rdi + 0x11e8]
jl 0x1401b6720
mov r8d, dword [rdi + 0x1684]
mov dword [rsp + 0x20], r9d
mov rdx, rsi
xor r9d, r9d
mov rcx, rdi
call fcn.1401b7e60
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.1401b7920
bsr eax, dword [rsi + 0x20]
mov ebx, dword [rsi + 0x18]
sub ebx, eax
mov eax, dword [rsp + 0x3650]
dec ebx
jmp 0x1401b6792
mov eax, dword [rsp + 0x3650]
jmp 0x1401b6792
mov eax, dword [rsp + 0x3650]
cmp dword [rsp + 0x3658], 0
jne 0x1401b67bc
test r13d, r13d
jne 0x1401b67af
cmp ebx, eax
jg 0x1401b67e0
mov r14, qword [rsp + 0x60]
jmp 0x1401b6c8a
mov ebp, dword [rsp + 0x3650]
mov ecx, dword [rsp + 0x44]
jmp 0x1401b67c7
mov ebp, dword [rsp + 0x3650]
mov ecx, dword [rsp + 0x44]
cmp r13d, 6
je 0x1401b6be0
mov eax, dword [rsp + 0x3650]
cmp ebx, eax
jle 0x1401b6945
test r14d, r14d
jne 0x1401b682a
cmp r13d, 2
jl 0x1401b682a
movss xmm0, dword [rsp + 0x3e4]
mulss xmm0, xmm7
comiss xmm0, xmm7
jbe 0x1401b6808
movss dword [rsp + 0x3e4], xmm0
jmp 0x1401b6811
movss dword [rsp + 0x3e4], xmm7
mov byte [rdi + 0x12ae], 0
mov dword [rsp + 0x54], 0
mov dword [rsp + 0x4c], 0xffffffff
jmp 0x1401b684c
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 0x1401b69fc
xor ebp, ebp
movsxd rax, r13d
cmp dword [rdi + 0x11e4], ebp
mov qword [rsp + 0x88], rax
jle 0x1401b6a07
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 0x1401b68db
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 0x1401b68b1
mov eax, dword [rdi + 0x11ec]
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x88]
test rdx, rdx
je 0x1401b68fd
cmp r8d, dword [rsp + r10 + 0xb0]
jge 0x1401b68f2
cmp dword [rsp + r10 + 0x78], 0
je 0x1401b68fd
mov dword [rsp + r10 + 0x78], 1
jmp 0x1401b690a
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 0x1401b6897
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 0x1401b6a1a
add eax, 0xfffffffb
cmp ebx, eax
jge 0x1401b6c77
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 0x1401b6a16
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.1401e75a0
lea rdx, [rdi + 0x94]
lea rcx, [rsp + 0xea0]
mov r8d, 0x1100
call fcn.1401e75a0
movzx eax, byte [rdi + 0x1c18]
mov r9d, dword [rsp + 0x40]
mov byte [rsp + 0x30], al
mov eax, dword [rsp + 0x38]
mov edx, ebx
jmp 0x1401b6a1a
mov r9d, dword [rsp + 0x40]
mov edx, dword [rsp + 0x34]
jmp 0x1401b6a1a
mov r9d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x38]
mov edx, dword [rsp + 0x34]
jmp 0x1401b6a1a
mov eax, dword [rsp + 0x38]
test dword [rsp + 0x54], r14d
jne 0x1401b6a81
mov ebp, dword [rsp + 0x3650]
cmp ebx, ebp
jle 0x1401b6a4e
mov eax, 0x4000
cmp r15w, ax
jge 0x1401b6a40
add r15w, r15w
jmp 0x1401b6ad5
mov eax, 0x7fff
mov r15w, ax
jmp 0x1401b6ad5
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.1401a6de0
movsx rcx, r15w
mov r11d, eax
imul r11, rcx
sar r11, 0x10
mov r15w, r11w
jmp 0x1401b6ad5
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 0x1401b6abd
lea r15d, [r9 + r8]
jmp 0x1401b6ad5
mov edx, dword [rsp + 0x38]
mov eax, edx
sub eax, r8d
cmp ecx, eax
jge 0x1401b6ad5
movzx eax, dx
sub ax, r8w
mov r15w, ax
mov r10d, dword [rdi + 0x11e4]
test r10d, r10d
jle 0x1401b6b4c
lea r8, [rsp + 0x30a0]
xor edx, edx
mov r9d, r10d
mov r13d, 0xff800000
cmp dword [rsp + rdx + 0x78], 0
je 0x1401b6b01
movzx eax, word [r8]
jmp 0x1401b6b05
mov ax, r15w
movsxd rcx, dword [rsp + rdx + 0x408]
movsx rax, ax
imul rcx, rax
sar rcx, 0x10
cmp ecx, 0x7fffff
jle 0x1401b6b28
mov ecx, 0x7fffff
jmp 0x1401b6b2f
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 0x1401b6af4
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.1401be0b0
mov edx, dword [rdi + 0x11e4]
mov rcx, rbx
call fcn.1401be320
cmp dword [rdi + 0x11e4], 0
mov r12d, eax
jle 0x1401b6bd3
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 0x1401b6bb0
inc r13d
mov dword [rsp + 0x58], r13d
jmp 0x1401b64e0
test r14d, r14d
je 0x1401b6c85
cmp r12d, ecx
je 0x1401b6bf6
cmp ebx, ebp
jle 0x1401b6c7e
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.1401e75a0
lea rdx, [rsp + 0xea0]
lea rcx, [rdi + 0x94]
mov r8d, 0x1100
call fcn.1401e75a0
mov al, byte [rsp + 0x30]
mov r14, qword [rsp + 0x60]
mov byte [rdi + 0x1c18], al
jmp 0x1401b6c8a
mov r14, qword [rsp + 0x60]
jmp 0x1401b6c8a
mov r14, qword [rsp + 0x60]
jmp 0x1401b6c8a
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.1401e75a0
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 0x1401b6d05
mov dword [r14], 0
jmp 0x1401b6d42
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.1401e6720
add rsp, 0x3610
pop r14
pop rdi
pop rsi
ret