Function at 0x1402c75a0
Capabilities:
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, 0x90
movzx eax, word [rcx]
movzx edx, byte [rcx + 2]
movzx r8d, word [rcx + 3]
shl r8d, 8
movzx r9d, byte [rcx + 5]
mov r12, rcx
movzx ecx, byte [rcx + 6]
shl ecx, 8
movzx r10d, byte [r12 + 7]
movzx r11d, word [r12 + 8]
shl r11d, 8
movzx esi, byte [r12 + 0xa]
movzx edi, word [r12 + 0xb]
shl edi, 8
movzx ebx, byte [r12 + 0xd]
movzx ebp, byte [r12 + 0xe]
shl ebp, 8
movzx r14d, word [r12 + 0x10]
shl r14d, 8
movzx r15d, byte [r12 + 0x12]
movzx r13d, word [r12 + 0x13]
shl r13, 8
or r13, r15
mov qword [rsp + 0x48], r13
shl r15d, 0x18
or r15d, r14d
movzx r14d, byte [r12 + 0xf]
or r15d, r14d
mov qword [rsp + 8], r15
shl r14d, 0x10
or r14d, ebp
or r14d, ebx
mov qword [rsp + 0x30], r14
shl ebx, 0x18
or ebx, edi
or ebx, esi
mov qword [rsp + 0x18], rbx
shl esi, 0x18
or esi, r11d
or esi, r10d
mov qword [rsp + 0x38], rsi
shl r10d, 0x10
or r10d, ecx
or r10d, r9d
mov rsi, r10
mov ecx, r9d
shl ecx, 0x18
or ecx, r8d
or ecx, edx
mov r15, rcx
mov ecx, edx
and ecx, 0x1f
shl ecx, 0x10
or rcx, rax
mov qword [rsp + 0x80], rcx
movzx eax, word [r12 + 0x1d]
shl eax, 8
movzx ecx, word [r12 + 0x20]
shl ecx, 8
movzx r8d, byte [r12 + 0x23]
shl r8d, 8
movzx r9d, word [r12 + 0x25]
shl r9d, 8
movzx edx, byte [r12 + 0x27]
movzx r10d, word [r12 + 0x28]
shl r10, 8
or r10, rdx
mov edi, edx
shl edi, 0x18
or edi, r9d
movzx r9d, byte [r12 + 0x24]
or edi, r9d
mov r14d, r9d
shl r14d, 0x10
or r14d, r8d
movzx r8d, byte [r12 + 0x22]
or r14d, r8d
mov edx, r8d
shl edx, 0x18
or edx, ecx
movzx ecx, byte [r12 + 0x1f]
or edx, ecx
mov qword [rsp + 0x28], rdx
mov edx, ecx
shl edx, 0x18
or edx, eax
movzx eax, byte [r12 + 0x1b]
shl eax, 8
movzx ecx, byte [r12 + 0x1c]
or edx, ecx
mov qword [rsp + 0x20], rdx
mov edx, ecx
shl edx, 0x10
or edx, eax
movzx eax, word [r12 + 0x18]
shl eax, 8
movzx ecx, byte [r12 + 0x1a]
or edx, ecx
mov qword [rsp + 0x10], rdx
shl ecx, 0x18
or ecx, eax
movzx eax, byte [r12 + 0x17]
or ecx, eax
mov qword [rsp], rcx
mov ecx, eax
and ecx, 0x1f
shl ecx, 0x10
movzx eax, word [r12 + 0x15]
or rcx, rax
mov qword [rsp + 0x40], rcx
mov rdx, r12
movzx eax, word [r12 + 0x3d]
shl rax, 8
movzx r11d, byte [r12 + 0x3f]
shl r11, 0x18
or r11, rax
movzx eax, word [r12 + 0x3a]
shl eax, 8
movzx r9d, byte [r12 + 0x3c]
or r11, r9
shl r9d, 0x18
or r9d, eax
movzx eax, byte [r12 + 0x38]
shl eax, 8
movzx ecx, byte [r12 + 0x39]
or r9d, ecx
shl ecx, 0x10
or ecx, eax
movzx r8d, word [r12 + 0x35]
shl r8d, 8
movzx eax, byte [rdx + 0x37]
or ecx, eax
shl eax, 0x18
or eax, r8d
movzx ebx, word [rdx + 0x32]
shl ebx, 8
movzx r8d, byte [rdx + 0x34]
or eax, r8d
shl r8d, 0x18
or r8d, ebx
movzx ebx, byte [rdx + 0x30]
shl ebx, 8
movzx ebp, byte [rdx + 0x31]
or r8d, ebp
mov r12d, ebp
shl r12d, 0x10
or r12d, ebx
movzx ebx, word [rdx + 0x2d]
shl ebx, 8
movzx ebp, byte [rdx + 0x2f]
or r12d, ebp
mov r13d, ebp
shl r13d, 0x18
or r13d, ebx
movzx ebx, byte [rdx + 0x2c]
mov qword [rsp + 0x88], rdx
or r13d, ebx
and ebx, 0x1f
shl ebx, 0x10
movzx ebp, word [rdx + 0x2a]
or rbx, rbp
shr r15d, 5
mov ebp, 0x1fffff
and r15d, ebp
mov qword [rsp + 0x70], r15
shr esi, 2
and esi, ebp
mov qword [rsp + 0x78], rsi
mov rdx, qword [rsp + 0x38]
shr edx, 7
and edx, ebp
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0x18]
shr edx, 4
and edx, ebp
mov qword [rsp + 0x18], rdx
mov rdx, qword [rsp + 0x30]
shr edx, 1
and edx, ebp
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 8]
shr edx, 6
and edx, ebp
mov qword [rsp + 8], rdx
mov rdx, qword [rsp]
shr edx, 5
and edx, ebp
mov qword [rsp], rdx
mov rdx, qword [rsp + 0x10]
shr edx, 2
and edx, ebp
mov qword [rsp + 0x10], rdx
mov rdx, qword [rsp + 0x20]
shr edx, 7
and edx, ebp
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x28]
shr edx, 4
and edx, ebp
mov qword [rsp + 0x28], rdx
shr r14d, 1
and r14d, ebp
shr edi, 6
and edi, ebp
shr r13d, 5
and r13d, ebp
shr r12d, 2
and r12d, ebp
shr r8d, 7
and r8d, ebp
shr eax, 4
and eax, ebp
shr ecx, 1
and ecx, ebp
shr r9d, 6
and r9d, ebp
shr r10, 3
shr r11, 3
imul rbp, r11, 0x215d1
add rbp, r10
imul rdx, r11, 0xfffffffffff59083
add rdx, rbx
mov qword [rsp + 0x50], rdx
imul rbx, r11, 0x72d18
imul r15, r9, 0x9fb67
add r15, rbx
imul rbx, r11, 0xfffffffffff0c653
imul rdx, r9, 0x215d1
add rdx, rbx
imul r10, r9, 0xfffffffffff59083
add r10, rbp
mov qword [rsp + 0x68], r10
imul rbp, r9, 0xa2c13
imul r10, rcx, 0x72d18
add r10, rbp
mov qword [rsp + 0x58], r10
imul r10, r9, 0x72d18
imul rbp, rcx, 0x9fb67
add rbp, r10
imul r10, r11, 0xa2c13
add rbp, r10
imul r9, r9, 0xfffffffffff0c653
imul r10, rcx, 0x215d1
add r10, r9
imul r9, rcx, 0xfffffffffff59083
add r9, rdi
add r9, rdx
mov qword [rsp + 0x60], r9
imul rdx, rcx, 0xfffffffffff0c653
imul rdi, rax, 0x215d1
add rdi, rdx
imul r9, rax, 0xfffffffffff59083
add r9, r14
add r9, r10
imul rdx, r11, 0x9fb67
add r9, rdx
imul rdx, rax, 0xa2c13
imul r10, r8, 0x72d18
add r10, rdx
imul rdx, rax, 0x72d18
imul r11, r8, 0x9fb67
add r11, rdx
imul rdx, rax, 0x9fb67
imul r14, r8, 0xfffffffffff0c653
add r14, rdx
imul rax, rax, 0xfffffffffff0c653
imul rsi, r8, 0x215d1
add rsi, rax
imul rbx, r8, 0xfffffffffff59083
add rbx, qword [rsp + 0x28]
add rbx, rdi
add rbx, r15
imul rdx, r12, 0xa2c13
add rdx, qword [rsp + 8]
mov rax, qword [rsp + 0x48]
shr rax, 3
imul r15, r12, 0x72d18
add r15, rax
imul rax, r8, 0xa2c13
add r15, rax
imul rax, r12, 0x9fb67
add rax, qword [rsp + 0x40]
add rax, r10
mov r8, rax
mov qword [rsp + 0x28], rax
imul rax, r12, 0xfffffffffff0c653
add rax, qword [rsp]
add rax, r11
imul rcx, rcx, 0xa2c13
add rax, rcx
imul rcx, r12, 0x215d1
add rcx, qword [rsp + 0x10]
add rcx, r14
add rcx, qword [rsp + 0x58]
mov r11, rcx
mov qword [rsp + 0x48], rcx
imul r10, r12, 0xfffffffffff59083
add r10, qword [rsp + 0x20]
add r10, rsi
add r10, rbp
mov esi, 0x100000
lea rcx, [rdx + rsi]
mov rdi, rcx
shr rdi, 0x15
add rdi, r15
and rcx, 0xffffffffffe00000
sub rdx, rcx
mov qword [rsp], rdx
lea rcx, [r8 + rsi]
movabs r8, 0x1fffffe00000
and r8, rcx
mov qword [rsp + 0x20], r8
shr rcx, 0x15
add rcx, rax
lea rax, [r11 + rsi]
mov qword [rsp + 0x10], rax
sar rax, 0x15
add rax, r10
mov r10, rax
lea rax, [rbx + rsi]
mov r15, rax
sar r15, 0x15
add r15, r9
mov r8, 0xffffffffffe00000
and rax, r8
sub rbx, rax
mov rbp, qword [rsp + 0x60]
lea r9, [rsi + rbp]
mov rax, r9
sar rax, 0x15
add rax, qword [rsp + 0x68]
and r9, r8
sub rbp, r9
mov rdx, qword [rsp + 0x50]
lea r9, [rdx + rsi]
mov r11, r9
sar r11, 0x15
add r11, r13
and r9, r8
sub rdx, r9
mov qword [rsp + 0x50], rdx
lea r9, [rdi + rsi]
mov r12, r9
and r9, 0xffffffffffe00000
sub rdi, r9
lea r9, [rcx + rsi]
mov qword [rsp + 0x40], r9
and r9, r8
sub rcx, r9
mov r9, r10
add r10, rsi
mov r14, r10
sar r14, 0x15
add r14, rbx
and r10, r8
sub r9, r10
mov qword [rsp + 8], r9
lea rdx, [r15 + rsi]
mov r13, rdx
sar r13, 0x15
add r13, rbp
and rdx, r8
sub r15, rdx
lea rdx, [rax + rsi]
mov rbp, rdx
sar rbp, 0x15
add rbp, qword [rsp + 0x50]
and rdx, r8
mov r10, 0xffffffffffe00000
sub rax, rdx
imul rdx, r11, 0xa2c13
add rdx, qword [rsp + 0x30]
imul r8, r11, 0x72d18
add r8, qword [rsp]
imul r9, r11, 0x9fb67
add r9, rdi
imul rbx, r11, 0x215d1
add rbx, rcx
imul rcx, r11, 0xfffffffffff59083
add rcx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
sar rdi, 0x15
add rcx, rdi
mov rdi, qword [rsp + 0x10]
and rdi, r10
sub rcx, rdi
mov qword [rsp + 0x30], rcx
imul rdi, rbp, 0xa2c13
add rdi, qword [rsp + 0x18]
imul rcx, rbp, 0x72d18
add rcx, rdx
imul rdx, rbp, 0x9fb67
add rdx, r8
imul r8, rbp, 0xfffffffffff0c653
add r8, r9
imul r9, rbp, 0xfffffffffff59083
add r9, rbx
mov qword [rsp + 0x10], r9
imul r9, rax, 0xa2c13
add r9, qword [rsp + 0x38]
imul r10, rax, 0x72d18
add r10, rdi
mov qword [rsp + 0x18], r10
imul r10, rax, 0x9fb67
add r10, rcx
mov qword [rsp], r10
imul r10, rax, 0xfffffffffff0c653
add r10, rdx
imul rcx, rax, 0x215d1
add rcx, r8
shr r12, 0x15
add r12, qword [rsp + 0x28]
sub r12, qword [rsp + 0x20]
imul rdx, r11, 0xfffffffffff0c653
add r12, rdx
imul rdx, rbp, 0x215d1
add r12, rdx
imul rax, rax, 0xfffffffffff59083
add r12, rax
imul rbp, r13, 0xfffffffffff59083
add rbp, rcx
imul rax, r13, 0xa2c13
imul rcx, r15, 0x72d18
add rcx, rax
imul rax, r13, 0x72d18
imul rdx, r15, 0x9fb67
add rdx, rax
imul rax, r13, 0x215d1
imul rdi, r15, 0xfffffffffff59083
add rdi, rax
add rdi, r10
imul r11, r14, 0xa2c13
add r11, qword [rsp + 0x80]
imul rbx, r14, 0x72d18
add rbx, qword [rsp + 0x70]
imul rax, r15, 0xa2c13
add rbx, rax
imul r10, r14, 0x9fb67
add r10, qword [rsp + 0x78]
add r10, rcx
mov qword [rsp + 0x38], r10
imul rax, r14, 0xfffffffffff0c653
add rax, r9
add rax, rdx
imul rcx, r13, 0x9fb67
imul rdx, r14, 0x215d1
add rdx, rcx
add rdx, qword [rsp + 0x18]
imul rcx, r15, 0xfffffffffff0c653
add rdx, rcx
mov r9, rdx
mov qword [rsp + 0x18], rdx
imul rcx, r13, 0xfffffffffff0c653
imul r8, r14, 0xfffffffffff59083
add r8, rcx
add r8, qword [rsp]
imul rcx, r15, 0x215d1
add r8, rcx
lea rdx, [r11 + rsi]
mov r14, rdx
sar r14, 0x15
add r14, rbx
mov rbx, 0xffffffffffe00000
and rdx, rbx
sub r11, rdx
lea r15, [r10 + rsi]
mov qword [rsp], r15
sar r15, 0x15
add r15, rax
lea rax, [r9 + rsi]
mov rdx, rax
mov r10, rax
sar rdx, 0x15
add rdx, r8
mov rcx, rdx
mov qword [rsp + 0x20], rdx
lea rax, [rdi + rsi]
mov r13, rax
sar r13, 0x15
add r13, rbp
mov r8, 0xffffffffffe00000
and rax, r8
sub rdi, rax
lea rax, [r12 + rsi]
mov rbx, rax
sar rbx, 0x15
add rbx, qword [rsp + 0x10]
and rax, r8
sub r12, rax
mov rdx, qword [rsp + 0x30]
lea rax, [rdx + rsi]
mov r9, rax
sar r9, 0x15
add r9, qword [rsp + 8]
mov qword [rsp + 8], r9
and rax, r8
sub rdx, rax
add rcx, rsi
mov r9, rcx
sar r9, 0x15
add r9, rdi
mov qword [rsp + 0x28], r9
lea rax, [rsi + r13]
mov rdi, rax
sar rdi, 0x15
add rdi, r12
and rax, r8
sub r13, rax
lea rax, [rbx + rsi]
mov r9, rax
sar r9, 0x15
add r9, rdx
mov qword [rsp + 0x30], r9
and rax, r8
sub rbx, rax
mov rbp, 0xffffffffffe00000
mov rdx, qword [rsp]
and rdx, rbp
and r10, rbp
mov qword [rsp], r10
lea r12, [r14 + rsi]
mov r8, r12
and r12, rbp
lea r10, [r15 + rsi]
mov r9, r10
and r10, rbp
and rcx, rbp
mov qword [rsp + 0x10], rcx
mov rcx, 0xffffffffffe00000
mov rax, qword [rsp + 8]
add rsi, rax
mov rbp, rsi
and rsi, rcx
sub rax, rsi
mov qword [rsp + 8], rax
sar rbp, 0x15
imul rsi, rbp, 0xa2c13
add rsi, r11
imul r11, rbp, 0x72d18
add r11, r14
sub r11, r12
mov rcx, rsi
sar rcx, 0x15
add r11, rcx
imul rcx, rbp, 0x9fb67
add rcx, qword [rsp + 0x38]
sub rcx, rdx
sar r8, 0x15
add rcx, r8
mov rax, r11
sar rax, 0x15
add rcx, rax
imul r12, rbp, 0xfffffffffff0c653
add r12, r15
sub r12, r10
mov rax, rcx
sar rax, 0x15
add r12, rax
imul rdx, rbp, 0x215d1
add rdx, qword [rsp + 0x18]
sub rdx, qword [rsp]
sar r9, 0x15
add rdx, r9
mov rax, r12
sar rax, 0x15
add rdx, rax
imul r10, rbp, 0xfffffffffff59083
add r10, qword [rsp + 0x20]
mov eax, 0x1fffff
and rsi, rax
and r11, rax
and rcx, rax
and r12, rax
sub r10, qword [rsp + 0x10]
mov r8, rdx
sar r8, 0x15
add r10, r8
and rdx, rax
mov r8, r10
sar r8, 0x15
add r8, qword [rsp + 0x28]
and r10, rax
mov rbp, r8
sar rbp, 0x15
add rbp, r13
and r8, rax
mov qword [rsp + 0x18], r8
mov r8, rbp
sar r8, 0x15
add r8, rdi
and rbp, rax
mov r15, r8
sar r15, 0x15
add r15, rbx
and r8, rax
mov rbx, r15
sar rbx, 0x15
add rbx, qword [rsp + 0x30]
and r15, rax
mov r13, rbx
sar r13, 0x15
add r13, qword [rsp + 8]
and rbx, rax
mov rdi, r13
sar rdi, 0x15
and r13, rax
imul rax, rdi, 0xa2c13
add rax, rsi
imul rsi, rdi, 0x72d18
add rsi, r11
imul r11, rdi, 0x9fb67
add r11, rcx
imul r9, rdi, 0xfffffffffff0c653
add r9, r12
imul r12, rdi, 0x215d1
add r12, rdx
imul rdx, rdi, 0xfffffffffff59083
add rdx, r10
mov r14, rax
sar r14, 0x15
add r14, rsi
mov rcx, r14
sar rcx, 0x15
add rcx, r11
mov rdi, rcx
sar rdi, 0x15
add rdi, r9
mov rsi, rdi
sar rsi, 0x15
add rsi, r12
mov r11, rsi
sar r11, 0x15
add r11, rdx
mov rdx, r11
sar rdx, 0x15
add rdx, qword [rsp + 0x18]
mov r12, rdx
sar r12, 0x15
add r12, rbp
mov r9, r12
sar r9, 0x15
add r9, r8
mov qword [rsp + 8], r9
mov r8, r9
sar r8, 0x15
add r8, r15
mov r9, r8
sar r9, 0x15
add r9, rbx
mov rbx, r9
sar rbx, 0x15
add rbx, r13
mov rbp, qword [rsp + 0x88]
mov byte [rbp], al
mov byte [rbp + 1], ah
shr eax, 0x10
and eax, 0x1f
mov r10d, r14d
shl r10d, 5
or r10d, eax
mov byte [rbp + 2], r10b
mov rax, r14
shr rax, 3
mov byte [rbp + 3], al
mov rax, r14
shr rax, 0xb
mov byte [rbp + 4], al
shr r14d, 0x13
and r14d, 3
lea eax, [r14 + rcx*4]
mov byte [rbp + 5], al
mov rax, rcx
shr rax, 6
mov byte [rbp + 6], al
mov eax, edi
shl eax, 7
shr ecx, 0xe
and ecx, 0x7f
or ecx, eax
mov byte [rbp + 7], cl
mov rax, rdi
shr rax, 1
mov byte [rbp + 8], al
mov rax, rdi
shr rax, 9
mov byte [rbp + 9], al
mov eax, esi
shl eax, 4
shr edi, 0x11
and edi, 0xf
or edi, eax
mov byte [rbp + 0xa], dil
mov rax, rsi
shr rax, 4
mov byte [rbp + 0xb], al
mov rax, rsi
shr rax, 0xc
mov byte [rbp + 0xc], al
shr esi, 0x14
and esi, 1
lea eax, [rsi + r11*2]
mov byte [rbp + 0xd], al
mov rax, r11
shr rax, 7
mov byte [rbp + 0xe], al
mov eax, edx
shl eax, 6
shr r11d, 0xf
and r11d, 0x3f
or r11d, eax
mov byte [rbp + 0xf], r11b
mov rax, rdx
shr rax, 2
mov byte [rbp + 0x10], al
mov rax, rdx
shr rax, 0xa
mov byte [rbp + 0x11], al
shr edx, 0x12
and edx, 7
lea eax, [rdx + r12*8]
mov byte [rbp + 0x12], al
mov rax, r12
shr rax, 5
mov byte [rbp + 0x13], al
shr r12, 0xd
mov byte [rbp + 0x14], r12b
mov rax, qword [rsp + 8]
mov byte [rbp + 0x15], al
mov byte [rbp + 0x16], ah
shr eax, 0x10
and eax, 0x1f
mov rcx, rax
mov eax, r8d
shl eax, 5
or eax, ecx
mov byte [rbp + 0x17], al
mov rax, r8
shr rax, 3
mov byte [rbp + 0x18], al
mov rax, r8
shr rax, 0xb
mov byte [rbp + 0x19], al
shr r8d, 0x13
and r8d, 3
lea eax, [r8 + r9*4]
mov byte [rbp + 0x1a], al
mov rax, r9
shr rax, 6
mov byte [rbp + 0x1b], al
mov eax, ebx
shl eax, 7
shr r9d, 0xe
and r9d, 0x7f
or r9d, eax
mov byte [rbp + 0x1c], r9b
mov rax, rbx
shr rax, 1
mov byte [rbp + 0x1d], al
mov rax, rbx
shr rax, 9
mov byte [rbp + 0x1e], al
shr rbx, 0x11
mov byte [rbp + 0x1f], bl
add rsp, 0x90
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret