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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov rax, qword [rsp + 0xa0]
mov ebp, dword [rsp + 0x90]
mov rsi, rcx
mov r13d, edx
mov edi, r9d
mov r12d, dword [rsp + 0x98]
test rax, rax
je 0x5a406a
cmp byte [rax], 0x31
mov eax, 0xfffffffa
setne dl
cmp dword [rsp + 0xa8], 0x58
setne cl
or cl, dl
jne 0x5a3e38
test rsi, rsi
je 0x5a3e33
mov rax, qword [rsi + 0x30]
mov qword [rsi + 0x20], 0
test rax, rax
je 0x5a4000
cmp qword [rsi + 0x38], 0
je 0x5a4020
cmp r13d, 0xffffffff
mov edx, 6
cmove r13d, edx
test edi, edi
js 0x5a3e70
cmp edi, 0xf
mov r14d, 1
jg 0x5a3e60
lea edx, [rbp - 1]
cmp edx, 8
ja 0x5a3e33
cmp r8d, 8
jne 0x5a3e33
lea edx, [rdi - 8]
cmp edx, 7
ja 0x5a3e33
cmp r13d, 9
ja 0x5a3e33
cmp r12d, 4
ja 0x5a3e33
cmp edi, 8
jne 0x5a3e50
test cl, cl
jne 0x5a3e33
mov r15d, 9
mov dil, 9
mov rcx, qword [rsi + 0x40]
mov r8d, 0x1718
mov edx, 1
call rax
test rax, rax
mov rbx, rax
je 0x5a4060
mov qword [rsi + 0x28], rax
mov dword [rax + 0x2c], r14d
mov r14d, 1
mov ecx, edi
mov r9d, r14d
mov qword [rax], rsi
shl r9d, cl
mov dword [rax + 8], 0x2a
mov qword [rax + 0x30], 0
mov dword [rax + 0x44], r9d
mov dword [rax + 0x48], r15d
lea eax, [r9 - 1]
lea ecx, [rbp + 7]
lea edx, [rbp + 9]
mov r8d, 2
mov dword [rbx + 0x4c], eax
mov eax, r14d
shl eax, cl
mov dword [rbx + 0x78], ecx
mov ecx, 0xaaaaaaab
mov dword [rbx + 0x74], eax
sub eax, 1
mov dword [rbx + 0x7c], eax
mov eax, edx
mul ecx
mov rcx, qword [rsi + 0x40]
shr edx, 1
mov dword [rbx + 0x80], edx
mov edx, r9d
call qword [rsi + 0x30]
mov edx, dword [rbx + 0x44]
mov rcx, qword [rsi + 0x40]
mov r8d, 2
mov qword [rbx + 0x50], rax
call qword [rsi + 0x30]
mov edx, dword [rbx + 0x74]
mov rcx, qword [rsi + 0x40]
mov r8d, 2
mov qword [rbx + 0x60], rax
call qword [rsi + 0x30]
lea ecx, [rbp + 6]
mov edx, r14d
mov qword [rbx + 0x68], rax
mov dword [rbx + 0x1714], 0
mov r8d, 4
shl edx, cl
mov rcx, qword [rsi + 0x40]
mov dword [rbx + 0x16f0], edx
call qword [rsi + 0x30]
mov edx, dword [rbx + 0x16f0]
cmp qword [rbx + 0x50], 0
mov qword [rbx + 0x10], rax
lea ecx, [rdx*4]
mov dword [rbx + 0x18], ecx
je 0x5a4030
cmp qword [rbx + 0x60], 0
je 0x5a4030
test rax, rax
je 0x5a4030
cmp qword [rbx + 0x68], 0
je 0x5a4030
mov ecx, edx
mov byte [rbx + 0x3c], 8
mov dword [rbx + 0xac], r13d
add rax, rcx
cmp qword [rsi + 0x30], 0
mov dword [rbx + 0xb0], r12d
mov qword [rbx + 0x16e8], rax
lea eax, [rdx + rdx*2 - 3]
mov dword [rbx + 0x16f8], eax
je 0x5a3e33
cmp qword [rsi + 0x38], 0
je 0x5a3e33
mov rbx, qword [rsi + 0x28]
test rbx, rbx
je 0x5a3e33
cmp rsi, qword [rbx]
je 0x5a3e84
mov eax, 0xfffffffe
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r15d, edi
jmp 0x5a3cd4
sub edi, 0x10
mov ecx, 1
mov r14b, 2
jmp 0x5a3c84
cmp edi, 0xfffffff1
jl 0x5a3e33
neg edi
mov ecx, 1
xor r14d, r14d
jmp 0x5a3c84
mov eax, dword [rbx + 8]
cmp eax, 0x45
setne cl
cmp eax, 0x2a
setne dl
and edx, ecx
cmp eax, 0x5b
setne cl
and edx, ecx
cmp eax, 0x67
setne cl
and edx, ecx
cmp eax, 0x71
setne cl
and edx, ecx
cmp eax, 0x29a
setne cl
test dl, cl
je 0x5a3ec5
sub eax, 0x39
and eax, 0xffffffef
jne 0x5a3e33
mov rax, qword [rbx + 0x10]
mov dword [rsi + 0x1c], 0
mov dword [rsi + 0xc], 0
mov qword [rsi + 0x20], 0
mov dword [rsi + 0x48], 2
mov dword [rbx + 0x28], 0
mov qword [rbx + 0x20], rax
mov eax, dword [rbx + 0x2c]
test eax, eax
jns 0x5a3efd
neg eax
mov dword [rbx + 0x2c], eax
cmp eax, 2
je 0x5a3fe4
mov dword [rbx + 8], 0x2a
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.0059ef60
mov dword [rsi + 0x4c], eax
mov rcx, rbx
mov dword [rbx + 0x40], 0xfffffffe
call fcn.005a9c20
mov rbx, qword [rsi + 0x28]
xor edx, edx
mov eax, dword [rbx + 0x44]
mov r8d, dword [rbx + 0x74]
mov rcx, qword [rbx + 0x68]
add eax, eax
sub r8d, 1
mov dword [rbx + 0x58], eax
xor eax, eax
mov word [rcx + r8*2], ax
add r8, r8
call sub.msvcrt.dll_memset
movsxd rax, dword [rbx + 0xac]
lea rdx, [0x0066b140]
mov dword [rbx + 0x94], 0
mov dword [rbx + 0x84], 0
mov dword [rbx + 0x9c], 0
mov dword [rbx + 0x1708], 0
mov dword [rbx + 0xa0], 2
mov dword [rbx + 0x88], 2
mov dword [rbx + 0x90], 0
shl rax, 4
mov dword [rbx + 0x70], 0
add rax, rdx
movzx edx, word [rax + 2]
mov dword [rbx + 0xa8], edx
movzx edx, word [rax]
mov dword [rbx + 0xb4], edx
movzx edx, word [rax + 4]
movzx eax, word [rax + 6]
mov dword [rbx + 0xb8], edx
mov dword [rbx + 0xa4], eax
xor eax, eax
jmp 0x5a3e38
mov dword [rbx + 8], 0x39
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.0059f870
jmp 0x5a3f19
cmp qword [rsi + 0x38], 0
mov rax, qword [0x00670ed0]
mov qword [rsi + 0x40], 0
mov qword [rsi + 0x30], rax
jne 0x5a3c60
nop
mov rdx, qword [0x00670ee0]
mov qword [rsi + 0x38], rdx
jmp 0x5a3c60
mov rax, qword [0x00670ec0]
mov dword [rbx + 8], 0x29a
mov rcx, rsi
mov rax, qword [rax + 0x30]
mov qword [rsi + 0x20], rax
call fcn.005a3ad0
mov eax, 0xfffffffc
jmp 0x5a3e38
mov eax, 0xfffffffc
jmp 0x5a3e38
mov eax, 0xfffffffa
jmp 0x5a3e38