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