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

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