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

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r13
push r14
push r15
sub rsp, 0x30
mov rbx, qword [rcx + 0x10]
xor r15b, r15b
xor ebp, ebp
mov r14d, r9d
mov rsi, rdx
mov r13, rcx
test rbx, rbx
jne 0x180059764
call fcn.1800335e0
mov rbx, rax
mov qword [r13 + 0x10], rax
test rax, rax
je 0x18005974c
xor r9d, r9d
xor r8d, r8d
mov edx, 0x99
mov rcx, rax
mov dword [rsp + 0x20], ebp
call fcn.180042780
cmp qword [r13 + 0x1c0], rbp
jne 0x180059764
mov rax, qword [r13]
test byte [rax + 0x4c], 8
jne 0x180059764
mov byte [r13 + 0x23], 1
mov rdi, qword [rsi + 0x10]
mov qword [rsp + 0x88], r12
test rdi, rdi
je 0x180059873
mov rsi, qword [rsp + 0x98]
mov r13, qword [rsp + 0x78]
nop word [rax + rax]
mov r8d, dword [rsi]
test r8d, r8d
je 0x180059855
cmp qword [rdi + 0x48], 0
mov r15b, 1
je 0x1800597bf
mov r9d, dword [rbx + 0x3c]
mov edx, 0x4c
mov rcx, rbx
add r9d, 2
mov dword [rsp + 0x20], ebp
call fcn.180042780
mov rax, qword [rbx + 0x30]
movsxd rbp, dword [rbx + 0x3c]
mov r12d, dword [rsi]
cmp dword [rax + 0x60], ebp
jg 0x1800597e0
mov edx, 1
mov rcx, rbx
call fcn.18003af10
test eax, eax
jne 0x180059811
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
lea rcx, [rbp + rbp*2]
xor ebp, ebp
mov byte [rax + rcx*8], 0x6e
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r14d
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov byte [rax + rcx*8 + 1], bpl
jmp 0x180059813
xor ebp, ebp
xor al, al
cmp dword [rsp + 0xb0], 0
movzx edx, al
mov eax, 0x10
cmovne edx, eax
mov eax, dword [rdi + 0x5c]
and al, 3
cmp al, 2
jne 0x18005983b
test byte [r13 + 0x48], 0x20
je 0x18005983b
or dl, 1
test dl, dl
je 0x180059855
mov r8, qword [rbx + 8]
test r8, r8
je 0x180059855
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [r8 + rcx*8 - 0x15], dl
mov rdi, qword [rdi + 0x28]
inc r14d
add rsi, 4
test rdi, rdi
jne 0x180059790
mov r13, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
test byte [rsi + 0x48], 0x20
jne 0x180059aaa
mov r14d, dword [rsp + 0x90]
movzx eax, byte [r13 + 0x1f]
lea ebp, [r14 + 1]
test al, al
jne 0x18005989c
inc dword [r13 + 0x54]
mov r12d, dword [r13 + 0x54]
jmp 0x1800598aa
dec al
movzx eax, al
mov byte [r13 + 0x1f], al
mov r12d, dword [r13 + rax*4 + 0x24]
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
movsx esi, word [rsi + 0x42]
cmp dword [rax + 0x60], edi
jg 0x1800598cc
mov edx, 1
mov rcx, rbx
call fcn.18003af10
test eax, eax
jne 0x1800598fb
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
lea rcx, [rdi + rdi*2]
xor edi, edi
mov byte [rax + rcx*8], 0x31
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebp
mov dword [rax + rcx*8 + 8], esi
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], rdi
mov byte [rax + rcx*8 + 1], dil
jmp 0x1800598fd
xor edi, edi
test r15b, r15b
jne 0x180059917
mov r15, qword [rsp + 0x78]
xor r8d, r8d
mov rcx, rbx
mov rdx, r15
call fcn.180051fe0
jmp 0x18005991c
mov r15, qword [rsp + 0x78]
movsx eax, word [r15 + 0x42]
lea rcx, [r13 + 0x94]
mov r8d, 0xa
lea r9d, [rax + rbp - 1]
mov edx, dword [rcx]
cmp edx, ebp
jl 0x18005995f
cmp edx, r9d
jg 0x18005995f
cmp byte [rcx - 6], 0
je 0x18005995d
movzx eax, byte [r13 + 0x1f]
cmp al, 8
jae 0x180059959
movzx eax, al
mov dword [r13 + rax*4 + 0x24], edx
inc byte [r13 + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], edi
add rcx, 0x14
sub r8, 1
jne 0x180059933
cmp byte [r13 + 0x1e], r8b
je 0x180059974
xor sil, sil
jmp 0x18005998d
cmp dword [rsp + 0xa0], 0
mov esi, 2
mov eax, 4
cmovne esi, eax
or sil, 1
cmp dword [rsp + 0xa8], 0
je 0x18005999b
or sil, 8
cmp dword [rsp + 0xb0], 0
je 0x1800599a9
or sil, 0x10
mov rax, qword [rbx + 0x30]
movsxd rdi, dword [rbx + 0x3c]
cmp dword [rax + 0x60], edi
jg 0x1800599c7
mov edx, 1
mov rcx, rbx
call fcn.18003af10
test eax, eax
jne 0x1800599ff
inc dword [rbx + 0x3c]
mov rax, qword [rbx + 8]
mov edx, dword [rsp + 0x80]
lea rcx, [rdi + rdi*2]
mov dword [rax + rcx*8 + 0xc], r14d
xor r14d, r14d
mov byte [rax + rcx*8], 0x4b
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r12d
mov qword [rax + rcx*8 + 0x10], r14
mov byte [rax + rcx*8 + 1], r14b
jmp 0x180059a02
xor r14d, r14d
cmp byte [r13 + 0x1e], 0
jne 0x180059a94
mov rdi, qword [rbx + 8]
mov rbp, qword [r15]
mov rcx, qword [rbx]
test rdi, rdi
je 0x180059a8a
cmp byte [rcx + 0x51], 0
jne 0x180059a8a
mov eax, dword [rbx + 0x3c]
dec eax
cdqe
lea r12, [rax + rax*2]
movsx edx, byte [rdi + r12*8 + 1]
mov r8, qword [rdi + r12*8 + 0x10]
call fcn.180046990
mov qword [rdi + r12*8 + 0x10], r14
test rbp, rbp
jne 0x180059a53
mov qword [rdi + r12*8 + 0x10], r14
mov byte [rdi + r12*8 + 1], bpl
jmp 0x180059a94
cmp byte [rbp], 0
mov rax, rbp
je 0x180059a68
nop dword [rax]
inc rax
cmp byte [rax], 0
jne 0x180059a60
mov rcx, qword [rbx]
sub eax, ebp
mov rdx, rbp
and eax, 0x3fffffff
movsxd r8, eax
call fcn.180034f20
mov byte [rdi + r12*8 + 1], 0xff
mov qword [rdi + r12*8 + 0x10], rax
jmp 0x180059a94
mov r8, rbp
xor edx, edx
call fcn.180046990
mov rdx, qword [rbx + 8]
test rdx, rdx
je 0x180059aaa
movsxd rax, dword [rbx + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], sil
mov r12, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbp
pop rbx
ret