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

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
push rbx
push rbp
push r13
push r14
push r15
mov r15d, edi
mov r13, rdx
mov r8d, dword [rsi]
mov r9d, dword [rsi + 4]
mov r10d, dword [rsi + 8]
mov r11d, dword [rsi + 0xc]
bswap r8d
bswap r9d
bswap r10d
bswap r11d
mov dword [r13], r9d
mov dword [r13 + 4], r8d
mov dword [r13 + 8], r11d
mov dword [r13 + 0xc], r10d
cmp r15, 0x80
je 0x515a4b
mov r8d, dword [rsi + 0x10]
mov r9d, dword [rsi + 0x14]
cmp r15, 0xc0
je 0x515a13
mov r10d, dword [rsi + 0x18]
mov r11d, dword [rsi + 0x1c]
jmp 0x515a1f
mov r10d, r8d
mov r11d, r9d
not r10d
not r11d
bswap r8d
bswap r9d
bswap r10d
bswap r11d
mov dword [r13 + 0x20], r9d
mov dword [r13 + 0x24], r8d
mov dword [r13 + 0x28], r11d
mov dword [r13 + 0x2c], r10d
xor r9d, dword [r13]
xor r8d, dword [r13 + 4]
xor r11d, dword [r13 + 8]
xor r10d, dword [r13 + 0xc]
lea r14, [0x00516180]
lea rbp, [0x005161c0]
mov ebx, dword [r14]
mov eax, dword [r14 + 4]
xor eax, r8d
xor ebx, r9d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 8]
mov eax, dword [r14 + 0xc]
xor ecx, edx
ror edx, 8
xor r10d, ecx
xor r11d, ecx
xor r11d, edx
xor eax, r10d
xor ebx, r11d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 0x10]
mov eax, dword [r14 + 0x14]
xor ecx, edx
ror edx, 8
xor r8d, ecx
xor r9d, ecx
xor r9d, edx
xor r9d, dword [r13]
xor r8d, dword [r13 + 4]
xor r11d, dword [r13 + 8]
xor r10d, dword [r13 + 0xc]
xor eax, r8d
xor ebx, r9d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 0x18]
mov eax, dword [r14 + 0x1c]
xor ecx, edx
ror edx, 8
xor r10d, ecx
xor r11d, ecx
xor r11d, edx
xor eax, r10d
xor ebx, r11d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 0x20]
mov eax, dword [r14 + 0x24]
xor ecx, edx
ror edx, 8
xor r8d, ecx
xor r9d, ecx
xor r9d, edx
cmp r15, 0x80
jne 0x515df0
lea r13, [r13 + 0x80]
shl r8, 0x20
shl r10, 0x20
or r8, r9
or r10, r11
mov rax, qword [r13 - 0x80]
mov rbx, qword [r13 - 0x78]
mov qword [r13 - 0x70], r8
mov qword [r13 - 0x68], r10
mov r11, rax
shl rax, 0xf
mov r9, rbx
shr r9, 0x31
shr r11, 0x31
or rax, r9
shl rbx, 0xf
or rbx, r11
mov qword [r13 - 0x60], rax
mov qword [r13 - 0x58], rbx
mov r11, r8
shl r8, 0xf
mov r9, r10
shr r9, 0x31
shr r11, 0x31
or r8, r9
shl r10, 0xf
or r10, r11
mov qword [r13 - 0x50], r8
mov qword [r13 - 0x48], r10
mov r11, r8
shl r8, 0xf
mov r9, r10
shr r9, 0x31
shr r11, 0x31
or r8, r9
shl r10, 0xf
or r10, r11
mov qword [r13 - 0x40], r8
mov qword [r13 - 0x38], r10
mov r11, rax
shl rax, 0x1e
mov r9, rbx
shr r9, 0x22
shr r11, 0x22
or rax, r9
shl rbx, 0x1e
or rbx, r11
mov qword [r13 - 0x30], rax
mov qword [r13 - 0x28], rbx
mov r11, r8
shl r8, 0xf
mov r9, r10
shr r9, 0x31
shr r11, 0x31
or r8, r9
shl r10, 0xf
or r10, r11
mov qword [r13 - 0x20], r8
mov r11, rax
shl rax, 0xf
mov r9, rbx
shr r9, 0x31
shr r11, 0x31
or rax, r9
shl rbx, 0xf
or rbx, r11
mov qword [r13 - 0x18], rbx
mov r11, r8
shl r8, 0xf
mov r9, r10
shr r9, 0x31
shr r11, 0x31
or r8, r9
shl r10, 0xf
or r10, r11
mov qword [r13 - 0x10], r8
mov qword [r13 - 8], r10
mov r11, rax
shl rax, 0x11
mov r9, rbx
shr r9, 0x2f
shr r11, 0x2f
or rax, r9
shl rbx, 0x11
or rbx, r11
mov qword [r13], rax
mov qword [r13 + 8], rbx
mov r11, rax
shl rax, 0x11
mov r9, rbx
shr r9, 0x2f
shr r11, 0x2f
or rax, r9
shl rbx, 0x11
or rbx, r11
mov qword [r13 + 0x10], rax
mov qword [r13 + 0x18], rbx
mov r11, r8
shl r8, 0x22
mov r9, r10
shr r9, 0x1e
shr r11, 0x1e
or r8, r9
shl r10, 0x22
or r10, r11
mov qword [r13 + 0x20], r8
mov qword [r13 + 0x28], r10
mov r11, rax
shl rax, 0x11
mov r9, rbx
shr r9, 0x2f
shr r11, 0x2f
or rax, r9
shl rbx, 0x11
or rbx, r11
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rbx
mov r11, r8
shl r8, 0x11
mov r9, r10
shr r9, 0x2f
shr r11, 0x2f
or r8, r9
shl r10, 0x11
or r10, r11
mov qword [r13 + 0x40], r8
mov qword [r13 + 0x48], r10
mov eax, 3
jmp 0x516138
mov dword [r13 + 0x30], r9d
mov dword [r13 + 0x34], r8d
mov dword [r13 + 0x38], r11d
mov dword [r13 + 0x3c], r10d
xor r9d, dword [r13 + 0x20]
xor r8d, dword [r13 + 0x24]
xor r11d, dword [r13 + 0x28]
xor r10d, dword [r13 + 0x2c]
xor eax, r8d
xor ebx, r9d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 0x28]
mov eax, dword [r14 + 0x2c]
xor ecx, edx
ror edx, 8
xor r10d, ecx
xor r11d, ecx
xor r11d, edx
xor eax, r10d
xor ebx, r11d
movzx esi, ah
movzx edi, bl
mov edx, dword [rbp + rsi*8 + 0x804]
mov ecx, dword [rbp + rdi*8]
movzx esi, al
shr eax, 0x10
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 4]
shr ebx, 0x10
xor ecx, dword [rbp + rdi*8 + 4]
movzx esi, ah
movzx edi, bl
xor edx, dword [rbp + rsi*8]
xor ecx, dword [rbp + rdi*8 + 0x804]
movzx esi, al
movzx edi, bh
xor edx, dword [rbp + rsi*8 + 0x800]
xor ecx, dword [rbp + rdi*8 + 0x800]
mov ebx, dword [r14 + 0x30]
mov eax, dword [r14 + 0x34]
xor ecx, edx
ror edx, 8
xor r8d, ecx
xor r9d, ecx
xor r9d, edx
mov rax, qword [r13]
mov rbx, qword [r13 + 8]
mov rcx, qword [r13 + 0x20]
mov rdx, qword [r13 + 0x28]
mov r14, qword [r13 + 0x30]
mov r15, qword [r13 + 0x38]
lea r13, [r13 + 0x80]
shl r8, 0x20
shl r10, 0x20
or r8, r9
or r10, r11
mov qword [r13 - 0x70], r8
mov qword [r13 - 0x68], r10
mov r11, rcx
shl rcx, 0xf
mov r9, rdx
shr r9, 0x31
shr r11, 0x31
or rcx, r9
shl rdx, 0xf
or rdx, r11
mov qword [r13 - 0x60], rcx
mov qword [r13 - 0x58], rdx
mov r11, r14
shl r14, 0xf
mov r9, r15
shr r9, 0x31
shr r11, 0x31
or r14, r9
shl r15, 0xf
or r15, r11
mov qword [r13 - 0x50], r14
mov qword [r13 - 0x48], r15
mov r11, rcx
shl rcx, 0xf
mov r9, rdx
shr r9, 0x31
shr r11, 0x31
or rcx, r9
shl rdx, 0xf
or rdx, r11
mov qword [r13 - 0x40], rcx
mov qword [r13 - 0x38], rdx
mov r11, r8
shl r8, 0x1e
mov r9, r10
shr r9, 0x22
shr r11, 0x22
or r8, r9
shl r10, 0x1e
or r10, r11
mov qword [r13 - 0x30], r8
mov qword [r13 - 0x28], r10
mov r11, rax
shl rax, 0x2d
mov r9, rbx
shr r9, 0x13
shr r11, 0x13
or rax, r9
shl rbx, 0x2d
or rbx, r11
mov qword [r13 - 0x20], rax
mov qword [r13 - 0x18], rbx
mov r11, r14
shl r14, 0x1e
mov r9, r15
shr r9, 0x22
shr r11, 0x22
or r14, r9
shl r15, 0x1e
or r15, r11
mov qword [r13 - 0x10], r14
mov qword [r13 - 8], r15
mov r11, rax
shl rax, 0xf
mov r9, rbx
shr r9, 0x31
shr r11, 0x31
or rax, r9
shl rbx, 0xf
or rbx, r11
mov qword [r13], rax
mov qword [r13 + 8], rbx
mov r11, rcx
shl rcx, 0x1e
mov r9, rdx
shr r9, 0x22
shr r11, 0x22
or rcx, r9
shl rdx, 0x1e
or rdx, r11
mov qword [r13 + 0x10], rcx
mov qword [r13 + 0x18], rdx
mov r11, r8
shl r8, 0x1e
mov r9, r10
shr r9, 0x22
shr r11, 0x22
or r8, r9
shl r10, 0x1e
or r10, r11
mov qword [r13 + 0x20], r8
mov qword [r13 + 0x28], r10
mov r11, rax
shl rax, 0x11
mov r9, rbx
shr r9, 0x2f
shr r11, 0x2f
or rax, r9
shl rbx, 0x11
or rbx, r11
mov qword [r13 + 0x30], rax
mov qword [r13 + 0x38], rbx
mov r11, r14
shl r14, 0x20
mov r9, r15
shr r9, 0x20
shr r11, 0x20
or r14, r9
shl r15, 0x20
or r15, r11
mov qword [r13 + 0x40], r14
mov qword [r13 + 0x48], r15
mov r11, rcx
shl rcx, 0x22
mov r9, rdx
shr r9, 0x1e
shr r11, 0x1e
or rcx, r9
shl rdx, 0x22
or rdx, r11
mov qword [r13 + 0x50], rcx
mov qword [r13 + 0x58], rdx
mov r11, r14
shl r14, 0x11
mov r9, r15
shr r9, 0x2f
shr r11, 0x2f
or r14, r9
shl r15, 0x11
or r15, r11
mov qword [r13 + 0x60], r14
mov qword [r13 + 0x68], r15
mov r11, rax
shl rax, 0x22
mov r9, rbx
shr r9, 0x1e
shr r11, 0x1e
or rax, r9
shl rbx, 0x22
or rbx, r11
mov qword [r13 + 0x70], rax
mov qword [r13 + 0x78], rbx
mov r11, r8
shl r8, 0x33
mov r9, r10
shr r9, 0xd
shr r11, 0xd
or r8, r9
shl r10, 0x33
or r10, r11
mov qword [r13 + 0x80], r8
mov qword [r13 + 0x88], r10
mov eax, 4
mov r15, qword [rsp]
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rbx, qword [rsp + 0x20]
lea rsp, [rsp + 0x28]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret