Function at 0x51f020
Capabilities:
Resolve function by parsing pe exports

Disassembly:
lea r12, [rsp - 0x50]
cmp r12, qword [r14 + 0x10]
jbe 0x51fd98
sub rsp, 0xd0
mov qword [rsp + 0xc8], rbp
lea rbp, [rsp + 0xc8]
mov qword [rsp + 0xd8], rax
movzx ecx, word [rbx]
movzx edx, byte [rbx + 2]
shl rdx, 0x10
or rcx, rdx
and ecx, 0x1fffff
mov qword [rsp + 0x98], rcx
mov edx, dword [rbx + 2]
sar rdx, 5
and edx, 0x1fffff
mov qword [rsp + 0x90], rdx
movzx esi, word [rbx + 5]
movzx edi, byte [rbx + 7]
shl rdi, 0x10
or rsi, rdi
sar rsi, 2
and esi, 0x1fffff
mov qword [rsp + 0x38], rsi
mov edi, dword [rbx + 7]
sar rdi, 7
and edi, 0x1fffff
mov qword [rsp + 0x30], rdi
mov r8d, dword [rbx + 0xa]
sar r8, 4
and r8d, 0x1fffff
mov qword [rsp + 0x28], r8
movzx r9d, word [rbx + 0xd]
movzx r10d, byte [rbx + 0xf]
shl r10, 0x10
or r9, r10
sar r9, 1
and r9d, 0x1fffff
mov qword [rsp + 0x20], r9
mov r10d, dword [rbx + 0xf]
sar r10, 6
and r10d, 0x1fffff
mov qword [rsp + 0x18], r10
movzx r11d, word [rbx + 0x12]
movzx r12d, byte [rbx + 0x14]
shl r12, 0x10
or r11, r12
sar r11, 3
and r11d, 0x1fffff
mov qword [rsp + 0x10], r11
movzx r12d, word [rbx + 0x15]
movzx r13d, byte [rbx + 0x17]
shl r13, 0x10
or r12, r13
and r12d, 0x1fffff
mov qword [rsp + 8], r12
mov r13d, dword [rbx + 0x17]
sar r13, 5
and r13d, 0x1fffff
movzx r15d, word [rbx + 0x1a]
movzx eax, byte [rbx + 0x1c]
shl rax, 0x10
or r15, rax
sar r15, 2
and r15d, 0x1fffff
mov eax, dword [rbx + 0x1c]
sar rax, 7
and eax, 0x1fffff
mov ecx, dword [rbx + 0x1f]
sar rcx, 4
and ecx, 0x1fffff
movzx edx, word [rbx + 0x22]
movzx esi, byte [rbx + 0x24]
shl rsi, 0x10
or rdx, rsi
sar rdx, 1
and edx, 0x1fffff
mov esi, dword [rbx + 0x24]
sar rsi, 6
and esi, 0x1fffff
movzx edi, word [rbx + 0x27]
movzx r8d, byte [rbx + 0x29]
shl r8, 0x10
or rdi, r8
sar rdi, 3
and edi, 0x1fffff
movzx r8d, word [rbx + 0x2a]
movzx r9d, byte [rbx + 0x2c]
shl r9, 0x10
or r8, r9
and r8d, 0x1fffff
mov r9d, dword [rbx + 0x2c]
sar r9, 5
and r9d, 0x1fffff
mov qword [rsp + 0x50], r9
movzx r9d, word [rbx + 0x2f]
movzx r10d, byte [rbx + 0x31]
shl r10, 0x10
or r9, r10
sar r9, 2
and r9d, 0x1fffff
mov qword [rsp + 0x48], r9
mov r10d, dword [rbx + 0x31]
sar r10, 7
and r10d, 0x1fffff
mov qword [rsp + 0x40], r10
mov r9d, dword [rbx + 0x34]
sar r9, 4
and r9d, 0x1fffff
movzx r11d, word [rbx + 0x37]
movzx r10d, byte [rbx + 0x39]
shl r10, 0x10
or r11, r10
sar r11, 1
and r11d, 0x1fffff
mov r10d, dword [rbx + 0x39]
sar r10, 6
and r10d, 0x1fffff
mov ebx, dword [rbx + 0x3c]
sar rbx, 3
imul r12, rbx, 0xa2c13
add rax, r12
imul r12, rbx, 0x72d18
add rcx, r12
imul r12, rbx, 0x9fb67
add rdx, r12
imul r12, rbx, 0xf39ad
sub rsi, r12
imul r12, rbx, 0x215d1
add rdi, r12
imul rbx, rbx, 0xa6f7d
sub r8, rbx
mov qword [rsp + 0x58], r8
imul rbx, r10, 0xa2c13
add rbx, r15
imul r12, r10, 0x72d18
add rax, r12
imul r12, r10, 0x9fb67
add rcx, r12
imul r12, r10, 0xf39ad
sub rdx, r12
imul r12, r10, 0x215d1
add rsi, r12
imul r10, r10, 0xa6f7d
sub rdi, r10
mov qword [rsp + 0x60], rdi
imul r10, r11, 0xa2c13
add r10, r13
imul r12, r11, 0x72d18
add rbx, r12
imul r12, r11, 0x9fb67
add rax, r12
imul r12, r11, 0xf39ad
sub rcx, r12
imul r12, r11, 0x215d1
add rdx, r12
imul r11, r11, 0xa6f7d
sub rsi, r11
mov qword [rsp + 0x68], rsi
imul r11, r9, 0xa2c13
mov r12, qword [rsp + 8]
add r11, r12
imul r12, r9, 0x72d18
add r10, r12
imul r12, r9, 0x9fb67
add rbx, r12
imul r12, r9, 0xf39ad
sub rax, r12
imul r12, r9, 0x215d1
add rcx, r12
imul r9, r9, 0xa6f7d
sub rdx, r9
mov qword [rsp + 0x70], rdx
mov r9, qword [rsp + 0x40]
imul r12, r9, 0xa2c13
mov r13, qword [rsp + 0x10]
add r12, r13
imul r13, r9, 0x72d18
add r11, r13
imul r13, r9, 0x9fb67
add r10, r13
imul r13, r9, 0xf39ad
sub rbx, r13
imul r13, r9, 0x215d1
add rax, r13
imul r9, r9, 0xa6f7d
sub rcx, r9
mov qword [rsp + 0x78], rcx
mov r9, qword [rsp + 0x48]
imul r13, r9, 0xa2c13
mov r15, qword [rsp + 0x18]
lea r8, [r13 + r15]
imul rdi, r9, 0x72d18
add rdi, r12
imul r12, r9, 0x9fb67
lea rsi, [r12 + r11]
imul rdx, r9, 0xf39ad
sub r10, rdx
imul rdx, r9, 0x215d1
lea rcx, [rdx + rbx]
imul r9, r9, 0xa6f7d
sub rax, r9
lea r9, [r13 + r15]
lea r9, [r9 + 0x100000]
sar r9, 0x15
lea r13, [rdi + r9]
mov r15, r9
shl r9, 0x15
sub r8, r9
mov qword [rsp + 0x18], r8
lea r9, [r12 + r11]
lea r9, [r9 + 0x100000]
sar r9, 0x15
lea r11, [r10 + r9]
mov r12, r9
shl r9, 0x15
sub rsi, r9
lea rdx, [rdx + rbx]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
lea rbx, [rdx + rax]
mov qword [rsp + 0x80], rbx
mov r9, rdx
shl rdx, 0x15
sub rcx, rdx
mov rdx, qword [rsp + 0x78]
lea r8, [rdx + 0x100000]
sar r8, 0x15
mov qword [rsp + 0xc0], r8
mov rbx, qword [rsp + 0x70]
add rbx, r8
mov qword [rsp + 0xb8], rbx
shl r8, 0x15
sub rdx, r8
mov qword [rsp + 0x78], rdx
mov r8, qword [rsp + 0x68]
lea rbx, [r8 + 0x100000]
sar rbx, 0x15
mov qword [rsp + 0xb0], rbx
mov rdx, qword [rsp + 0x60]
add rdx, rbx
mov qword [rsp + 0xa8], rdx
shl rbx, 0x15
sub r8, rbx
mov qword [rsp + 0x68], r8
mov rbx, qword [rsp + 0x58]
lea rdx, [rbx + 0x100000]
sar rdx, 0x15
mov r8, qword [rsp + 0x50]
add r8, rdx
shl rdx, 0x15
sub rbx, rdx
lea rdx, [rdi + r15]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
add rsi, rdx
shl rdx, 0x15
sub r13, rdx
lea rdx, [r10 + r12]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
add rcx, rdx
shl rdx, 0x15
sub r11, rdx
lea rax, [r9 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
mov rdx, qword [rsp + 0x78]
add rdx, rax
shl rax, 0x15
mov rdi, qword [rsp + 0x80]
sub rdi, rax
mov qword [rsp + 0x80], rdi
mov rax, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x70]
lea rax, [r9 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
mov r9, qword [rsp + 0x68]
add r9, rax
shl rax, 0x15
mov r10, qword [rsp + 0xb8]
sub r10, rax
mov rax, qword [rsp + 0xb0]
mov r12, qword [rsp + 0x60]
lea rax, [r12 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
add rbx, rax
shl rax, 0x15
mov r12, qword [rsp + 0xa8]
sub r12, rax
imul rax, r8, 0xa2c13
mov r15, qword [rsp + 0x20]
add rax, r15
imul r15, r8, 0x72d18
mov rdi, qword [rsp + 0x18]
add rdi, r15
imul r15, r8, 0x9fb67
add r13, r15
imul r15, r8, 0xf39ad
sub rsi, r15
imul r15, r8, 0x215d1
add r11, r15
imul r8, r8, 0xa6f7d
sub rcx, r8
mov qword [rsp + 0x88], rcx
imul r8, rbx, 0xa2c13
mov r15, qword [rsp + 0x28]
add r8, r15
imul r15, rbx, 0x72d18
add rax, r15
imul r15, rbx, 0x9fb67
add rdi, r15
imul r15, rbx, 0xf39ad
sub r13, r15
imul r15, rbx, 0x215d1
add rsi, r15
imul rbx, rbx, 0xa6f7d
sub r11, rbx
mov qword [rsp], r11
imul rbx, r12, 0xa2c13
mov r15, qword [rsp + 0x30]
add rbx, r15
imul r15, r12, 0x72d18
add r8, r15
imul r15, r12, 0x9fb67
add rax, r15
imul r15, r12, 0xf39ad
sub rdi, r15
imul r15, r12, 0x215d1
add r13, r15
imul r12, r12, 0xa6f7d
sub rsi, r12
mov qword [rsp + 8], rsi
imul r12, r9, 0xa2c13
mov r15, qword [rsp + 0x38]
add r12, r15
imul r15, r9, 0x72d18
add rbx, r15
imul r15, r9, 0x9fb67
add r8, r15
imul r15, r9, 0xf39ad
sub rax, r15
imul r15, r9, 0x215d1
add rdi, r15
imul r9, r9, 0xa6f7d
sub r13, r9
mov qword [rsp + 0x10], r13
imul r9, r10, 0xa2c13
mov r15, qword [rsp + 0x90]
add r9, r15
imul r15, r10, 0x72d18
add r12, r15
imul r15, r10, 0x9fb67
add rbx, r15
imul r15, r10, 0xf39ad
sub r8, r15
imul r15, r10, 0x215d1
add rax, r15
imul r10, r10, 0xa6f7d
sub rdi, r10
mov qword [rsp + 0x18], rdi
imul r10, rdx, 0xa2c13
mov r15, qword [rsp + 0x98]
lea rcx, [r15 + r10]
imul r11, rdx, 0x72d18
add r9, r11
imul r11, rdx, 0x9fb67
lea rsi, [r12 + r11]
imul r13, rdx, 0xf39ad
sub rbx, r13
imul r13, rdx, 0x215d1
lea rdi, [r8 + r13]
imul rdx, rdx, 0xa6f7d
sub rax, rdx
lea rdx, [r15 + r10]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
lea r10, [rdx + r9]
mov r15, rdx
shl rdx, 0x15
sub rcx, rdx
mov qword [rsp + 0x98], rcx
lea rdx, [r12 + r11]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
lea r11, [rdx + rbx]
mov r12, rdx
shl rdx, 0x15
sub rsi, rdx
lea rdx, [r8 + r13]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
lea r8, [rdx + rax]
mov qword [rsp + 0x20], r8
mov r13, rdx
shl rdx, 0x15
sub rdi, rdx
mov rdx, qword [rsp + 0x18]
lea rcx, [rdx + 0x100000]
sar rcx, 0x15
mov qword [rsp + 0xc0], rcx
mov r8, qword [rsp + 0x10]
add r8, rcx
mov qword [rsp + 0xb8], r8
shl rcx, 0x15
sub rdx, rcx
mov qword [rsp + 0x18], rdx
mov rcx, qword [rsp + 8]
lea r8, [rcx + 0x100000]
sar r8, 0x15
mov qword [rsp + 0xb0], r8
mov rdx, qword [rsp]
add rdx, r8
mov qword [rsp + 0xa8], rdx
shl r8, 0x15
sub rcx, r8
mov qword [rsp + 8], rcx
mov r8, qword [rsp + 0x88]
lea rdx, [r8 + 0x100000]
sar rdx, 0x15
mov qword [rsp + 0xa0], rdx
mov rcx, qword [rsp + 0x80]
add rcx, rdx
shl rdx, 0x15
sub r8, rdx
lea rdx, [r15 + r9]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
add rsi, rdx
shl rdx, 0x15
sub r10, rdx
lea rdx, [r12 + rbx]
lea rdx, [rdx + 0x100000]
sar rdx, 0x15
lea rbx, [rdx + rdi]
shl rdx, 0x15
sub r11, rdx
lea rax, [r13 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
mov rdx, qword [rsp + 0x18]
add rdx, rax
shl rax, 0x15
mov rdi, qword [rsp + 0x20]
sub rdi, rax
mov rax, qword [rsp + 0xc0]
mov r9, qword [rsp + 0x10]
lea rax, [r9 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
mov r9, qword [rsp + 8]
add r9, rax
shl rax, 0x15
mov r12, qword [rsp + 0xb8]
sub r12, rax
mov rax, qword [rsp + 0xb0]
mov r13, qword [rsp]
lea rax, [r13 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
add r8, rax
shl rax, 0x15
mov r13, qword [rsp + 0xa8]
sub r13, rax
mov rax, qword [rsp + 0xa0]
mov r15, qword [rsp + 0x80]
lea rax, [r15 + rax]
lea rax, [rax + 0x100000]
sar rax, 0x15
mov r15, rax
shl rax, 0x15
sub rcx, rax
mov qword [rsp + 0x80], rcx
imul rax, r15, 0xa2c13
mov rcx, qword [rsp + 0x98]
add rax, rcx
imul rcx, r15, 0x72d18
add rcx, r10
imul r10, r15, 0x9fb67
add rsi, r10
imul r10, r15, 0xf39ad
sub r11, r10
imul r10, r15, 0x215d1
add rbx, r10
imul r10, r15, 0xa6f7d
sub rdi, r10
mov r10, rax
sar rax, 0x15
add rcx, rax
shl rax, 0x15
sub r10, rax
mov rax, rcx
sar rcx, 0x15
add rsi, rcx
mov r15, rsi
sar rsi, 0x15
add r11, rsi
mov qword [rsp + 0x30], r11
sar r11, 0x15
add rbx, r11
mov qword [rsp + 0x28], rbx
sar rbx, 0x15
add rdi, rbx
mov qword [rsp + 0x20], rdi
sar rdi, 0x15
add rdx, rdi
mov qword [rsp + 0x18], rdx
sar rdx, 0x15
add r12, rdx
mov qword [rsp + 0x10], r12
sar r12, 0x15
add r9, r12
mov qword [rsp + 8], r9
sar r9, 0x15
add r13, r9
mov qword [rsp], r13
sar r13, 0x15
mov qword [rsp + 0xc0], r13
add r8, r13
mov qword [rsp + 0x88], r8
sar r8, 0x15
mov qword [rsp + 0xb8], r8
mov r13, qword [rsp + 0x80]
add r13, r8
mov qword [rsp + 0x80], r13
sar r13, 0x15
imul r8, r13, 0xa2c13
add r8, r10
mov r10, r8
sar r8, 0x15
mov qword [rsp + 0xb0], r8
shl r8, 0x15
sub r10, r8
mov qword [rsp + 0x98], r10
mov r8, qword [rsp + 0xd8]
mov byte [r8], r10b
sar r10, 8
mov byte [r8 + 1], r10b
shl rcx, 0x15
sub rax, rcx
imul rcx, r13, 0x72d18
add rax, rcx
mov rcx, qword [rsp + 0xb0]
add rax, rcx
mov rcx, rax
sar rax, 0x15
mov r10, rax
shl rax, 0x15
sub rcx, rax
mov qword [rsp + 0x90], rcx
mov rax, qword [rsp + 0x98]
sar rax, 0x10
shl rcx, 5
or rcx, rax
mov byte [r8 + 2], cl
mov rax, qword [rsp + 0x90]
mov rcx, rax
sar rax, 3
mov byte [r8 + 3], al
mov rax, rcx
sar rcx, 0xb
mov byte [r8 + 4], cl
shl rsi, 0x15
sub r15, rsi
imul rcx, r13, 0x9fb67
add rcx, r15
add rcx, r10
mov rsi, rcx
sar rcx, 0x15
mov r10, rcx
shl rcx, 0x15
sub rsi, rcx
sar rax, 0x13
mov rcx, rsi
shl rsi, 2
or rsi, rax
mov byte [r8 + 5], sil
mov rax, rcx
sar rcx, 6
mov byte [r8 + 6], cl
shl r11, 0x15
mov rcx, qword [rsp + 0x30]
sub rcx, r11
imul rsi, r13, 0xf39ad
sub rcx, rsi
add rcx, r10
mov rsi, rcx
sar rcx, 0x15
mov r10, rcx
shl rcx, 0x15
sub rsi, rcx
sar rax, 0xe
mov rcx, rsi
shl rsi, 7
or rsi, rax
mov byte [r8 + 7], sil
mov rax, rcx
sar rcx, 1
mov byte [r8 + 8], cl
mov rcx, rax
sar rax, 9
mov byte [r8 + 9], al
shl rbx, 0x15
mov rax, qword [rsp + 0x28]
sub rax, rbx
imul rbx, r13, 0x215d1
add rax, rbx
add rax, r10
mov rbx, rax
sar rax, 0x15
mov rsi, rax
shl rax, 0x15
sub rbx, rax
sar rcx, 0x11
mov rax, rbx
shl rbx, 4
or rbx, rcx
mov byte [r8 + 0xa], bl
mov rcx, rax
sar rax, 4
mov byte [r8 + 0xb], al
mov rax, rcx
sar rcx, 0xc
mov byte [r8 + 0xc], cl
shl rdi, 0x15
mov rcx, qword [rsp + 0x20]
sub rcx, rdi
imul rbx, r13, 0xa6f7d
sub rcx, rbx
add rcx, rsi
mov rbx, rcx
sar rcx, 0x15
mov rsi, rcx
shl rcx, 0x15
sub rbx, rcx
sar rax, 0x14
mov rcx, rbx
shl rbx, 1
or rbx, rax
mov byte [r8 + 0xd], bl
mov rax, rcx
sar rcx, 7
mov byte [r8 + 0xe], cl
shl rdx, 0x15
mov rcx, qword [rsp + 0x18]
sub rcx, rdx
add rcx, rsi
mov rdx, rcx
sar rcx, 0x15
mov rbx, rcx
shl rcx, 0x15
sub rdx, rcx
sar rax, 0xf
mov rcx, rdx
shl rdx, 6
or rax, rdx
mov byte [r8 + 0xf], al
mov rax, rcx
sar rcx, 2
mov byte [r8 + 0x10], cl
mov rcx, rax
sar rax, 0xa
mov byte [r8 + 0x11], al
shl r12, 0x15
mov rax, qword [rsp + 0x10]
sub rax, r12
add rax, rbx
mov rdx, rax
sar rax, 0x15
mov rbx, rax
shl rax, 0x15
sub rdx, rax
sar rcx, 0x12
mov rax, rdx
shl rdx, 3
or rcx, rdx
mov byte [r8 + 0x12], cl
mov rcx, rax
sar rax, 5
mov byte [r8 + 0x13], al
sar rcx, 0xd
mov byte [r8 + 0x14], cl
shl r9, 0x15
mov rax, qword [rsp + 8]
sub rax, r9
add rax, rbx
mov rcx, rax
sar rax, 0x15
mov rdx, rax
shl rax, 0x15
sub rcx, rax
mov byte [r8 + 0x15], cl
mov rax, rcx
sar rcx, 8
mov byte [r8 + 0x16], cl
mov rcx, qword [rsp + 0xc0]
shl rcx, 0x15
mov rbx, qword [rsp]
sub rbx, rcx
lea rcx, [rbx + rdx]
mov rdx, rcx
sar rcx, 0x15
mov rbx, rcx
shl rcx, 0x15
sub rdx, rcx
sar rax, 0x10
mov rcx, rdx
shl rdx, 5
or rdx, rax
mov byte [r8 + 0x17], dl
mov rax, rcx
sar rcx, 3
mov byte [r8 + 0x18], cl
mov rcx, rax
sar rax, 0xb
mov byte [r8 + 0x19], al
mov rax, qword [rsp + 0xb8]
shl rax, 0x15
mov rdx, qword [rsp + 0x88]
sub rdx, rax
lea rax, [rdx + rbx]
mov rdx, rax
sar rax, 0x15
mov rbx, rax
shl rax, 0x15
sub rdx, rax
sar rcx, 0x13
mov rax, rdx
shl rdx, 2
or rdx, rcx
mov byte [r8 + 0x1a], dl
mov rcx, rax
sar rax, 6
mov byte [r8 + 0x1b], al
shl r13, 0x15
mov rax, qword [rsp + 0x80]
sub rax, r13
add rax, rbx
sar rcx, 0xe
mov rdx, rax
shl rax, 7
or rcx, rax
mov byte [r8 + 0x1c], cl
mov rax, rdx
sar rdx, 1
mov byte [r8 + 0x1d], dl
mov rcx, rax
sar rax, 9
mov byte [r8 + 0x1e], al
sar rcx, 0x11
mov byte [r8 + 0x1f], cl
mov rbp, qword [rsp + 0xc8]
add rsp, 0xd0
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
call fcn.004600a0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
jmp fcn.0051f020