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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xe0], xmm6
mov qword [rsp + 0x60], r8
mov rdi, rcx
mov eax, r9d
sub eax, dword [rdx + 0x40]
jb 0x180059897
mov rbx, rdx
mov ecx, dword [rdx + 0x44]
cmp eax, ecx
jae 0x180059897
mov r8d, dword [rsp + 0x168]
lea edx, [r8*8]
cmp ecx, edx
jbe 0x180059897
lea eax, [rax + r8*8]
cmp eax, ecx
ja 0x180059897
test r8d, r8d
je 0x18005988c
mov r13d, r9d
lea rax, [rbx + 0x10]
mov qword [rsp + 0xd0], rax
lea rax, [rbx + 0x28]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd8], r8
mov esi, dword [rbx + 0x40]
mov eax, r13d
sub eax, esi
jb 0x180059897
mov r15d, dword [rbx + 0x44]
cmp eax, r15d
jae 0x180059897
cmp r15d, 9
jb 0x180059897
add eax, 8
cmp eax, r15d
ja 0x180059897
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0x20], 8
lea rcx, [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov r8d, r13d
lea r9, [rsp + 0xa0]
call fcn.180058440
cmp dword [rsp + 0x30], 0
jne 0x1800598b8
cmp qword [rsp + 0x40], 8
jne 0x180059893
mov r12d, dword [rsp + 0xa4]
mov r14d, r12d
and r14d, 0x7fffffff
cmp r15d, r14d
jbe 0x180059897
mov dword [rsp + 0xac], r13d
mov ebp, dword [rsp + 0xa0]
mov r13d, 1
cmp byte [rsp + 0x160], 0
je 0x180059570
and ebp, 0x7fffffff
cmp r15d, ebp
jbe 0x180059897
add ebp, esi
mov word [rsp + 0x2e], 0
mov qword [rsp + 0x20], 2
lea rcx, [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov r8d, ebp
lea r9, [rsp + 0x2e]
call fcn.180058640
mov eax, dword [rsp + 0x30]
test eax, eax
jne 0x1800598fb
cmp qword [rsp + 0x40], 2
jne 0x180059893
add ebp, 2
mov eax, ebp
sub eax, esi
jb 0x180059897
cmp eax, r15d
jae 0x180059897
mov rcx, qword [rsp + 0x38]
movzx esi, word [rcx]
add rsi, rsi
cmp r15d, esi
jbe 0x180059897
add eax, esi
cmp eax, r15d
ja 0x180059897
mov r13, qword [rbx + 8]
cmp rsi, r13
cmovb r13, rsi
mov rcx, qword [rsp + 0xd0]
mov rdx, r13
call fcn.180031da0
cmp al, 8
jne 0x180059931
mov r15, qword [rbx + 0x10]
mov rax, rbx
mov rbx, qword [rbx + 0x18]
mov rdi, qword [rax + 0x20]
cmp rbx, rdi
cmovb rdi, rbx
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov r8d, ebp
mov r9, r15
call fcn.180058640
cmp dword [rsp + 0x30], 0
jne 0x1800598da
cmp qword [rsp + 0x40], r13
jne 0x180059572
mov r15, qword [rsp + 0x38]
jmp 0x18005959a
jmp 0x1800595cd
mov qword [rsp + 0x20], rdi
lea rcx, [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
mov r8d, ebp
mov r9, r15
call fcn.180058440
cmp dword [rsp + 0x30], 0
jne 0x1800598da
mov r13, rbx
mov rdi, qword [rsp + 0x78]
mov rcx, r15
mov rdx, r13
call fcn.180069920
mov dword [rsp + 0x8c], ebp
mov dword [rsp + 0x90], esi
mov rcx, qword [rsp + 0x8c]
xor r13d, r13d
mov ebp, eax
mov rbx, qword [rsp + 0xc8]
mov dword [rsp + 0x68], ebp
mov qword [rsp + 0x6c], rcx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xb8], rax
mov ecx, dword [rsp + 0x70]
mov dword [rsp + 0xc0], ecx
mov dword [rsp + 0x88], ecx
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x170]
mov r15, qword [rbp + 8]
inc r15
je 0x1800599c4
cmp r15, qword [rbp + 0x10]
jbe 0x180059647
mov rcx, r15
call fcn.180008a30
cmp rax, r15
jbe 0x180059634
mov rcx, rbp
mov rdx, rax
call fcn.180032e30
cmp al, 8
je 0x180059647
mov rcx, rbp
mov rdx, r15
call fcn.180032e30
cmp al, 8
jne 0x1800599c4
not r12d
shr r12d, 0x1f
mov rsi, qword [rbp]
mov r15, qword [rbp + 8]
lea rax, [r15 + r15*2]
mov dword [rsi + rax*8], r13d
mov rcx, qword [rsp + 0x80]
mov qword [rsi + rax*8 + 4], rcx
mov ecx, dword [rsp + 0x88]
mov dword [rsi + rax*8 + 0xc], ecx
mov dword [rsi + rax*8 + 0x10], r12d
mov dword [rsi + rax*8 + 0x14], r14d
inc r15
mov qword [rbp + 8], r15
mov r13d, dword [rsp + 0xac]
je 0x180059897
cmp dword [rsi + rax*8 + 0x10], 0
je 0x180059790
mov eax, dword [rsi + rax*8 + 0x14]
mov ecx, dword [rbx + 0x44]
cmp ecx, eax
jbe 0x180059897
cmp ecx, 0x11
jb 0x180059860
mov edx, dword [rbx + 0x40]
lea r8d, [rdx + rax]
cmp r8d, edx
jb 0x180059860
add eax, 0x10
cmp eax, ecx
ja 0x180059860
cmp r15, 3
jne 0x180059860
mov rbp, qword [rbx + 0x30]
cmp qword [rbx], rbp
jbe 0x180059853
mov dword [rsp + 0x88], 0
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x20], 0xc
lea rcx, [rsp + 0x30]
mov rdx, qword [rsp + 0x60]
lea r9, [rsp + 0x80]
call fcn.180058440
cmp dword [rsp + 0x30], 0
jne 0x1800599af
cmp qword [rsp + 0x40], 0xc
jne 0x1800597d9
movsd xmm6, qword [rsp + 0x80]
mov r14d, dword [rsp + 0x88]
movups xmm0, xmmword [rsi + 0x18]
lea rax, [rsp + 0x3c]
movups xmmword [rax], xmm0
mov r12d, dword [rsi]
mov eax, dword [rsi + 0xc]
mov dword [rsp + 0x38], eax
mov rax, qword [rsi + 4]
mov qword [rsp + 0x30], rax
mov al, 7
inc rbp
jne 0x1800597df
cmp r12d, 2
mov rbp, qword [rsp + 0x170]
je 0x180059860
jmp 0x1800599bb
cmp r15, 3
jae 0x180059897
mov r9d, dword [rsi + rax*8 + 0x14]
cmp dword [rbx + 0x44], r9d
jbe 0x180059897
add r9d, dword [rbx + 0x40]
mov qword [rsp + 0x20], rbp
lea rcx, [rsp + 0x30]
mov rdx, rbx
mov r8, qword [rsp + 0x60]
call fcn.1800591c0
cmp qword [rsp + 0x30], 0
jne 0x180059995
mov r15, qword [rbp + 8]
jmp 0x180059860
mov byte [rbx + 0x49], 1
jmp 0x180059853
cmp rbp, qword [rbx + 0x38]
jbe 0x18005981e
mov rcx, rbp
call fcn.180008a30
cmp rax, rbp
jbe 0x180059806
mov rcx, qword [rsp + 0xb0]
mov rdx, rax
call fcn.180032100
cmp al, 8
je 0x18005981e
mov rcx, qword [rsp + 0xb0]
mov rdx, rbp
call fcn.180032100
cmp al, 8
jne 0x18005976f
mov rax, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x30]
imul rdx, rcx, 0x2c
mov dword [rax + rdx], r12d
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x3c]
movups xmmword [rax + rdx + 4], xmm0
movups xmmword [rax + rdx + 0x10], xmm1
movlps qword [rax + rdx + 0x20], xmm6
mov dword [rax + rdx + 0x28], r14d
inc rcx
mov qword [rbx + 0x30], rcx
mov rbp, qword [rsp + 0x170]
nop dword [rax + rax]
mov rax, qword [rbp + 0x10]
cmp r15, rax
cmovb rax, r15
test rax, rax
je 0x180059877
dec r15
mov qword [rbp + 8], r15
add r13d, 8
mov r8, qword [rsp + 0xd8]
dec r8d
jne 0x1800593c2
mov word [rdi], 0x100
jmp 0x18005989c
mov byte [rbx + 0x49], 1
mov word [rdi], 0
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x30]
mov r8d, dword [rsp + 0x38]
mov eax, dword [rsp + 0x3c]
mov rdx, qword [rsp + 0x40]
mov qword [rsp + 0x68], rcx
mov dword [rsp + 0x70], r8d
jmp 0x18005995a
mov rcx, qword [rsp + 0x30]
movups xmm0, xmmword [rsp + 0x38]
mov rdi, qword [rsp + 0x78]
mov qword [rsp + 0x88], rcx
movups xmmword [rsp + 0x90], xmm0
jmp 0x18005993a
mov ecx, dword [rsp + 0x34]
movups xmm0, xmmword [rsp + 0x38]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x3c], ecx
movups xmmword [rsp + 0x40], xmm0
mov byte [rsp + 0x30], 2
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x88]
call fcn.18005b7f0
mov ecx, dword [rsp + 0x88]
jmp 0x18005993a
mov byte [rsp + 0x8c], al
xor ecx, ecx
mov eax, dword [rsp + 0x94]
mov rdx, qword [rsp + 0x98]
mov r8, qword [rsp + 0x8c]
mov dword [rsp + 0x68], ecx
mov qword [rsp + 0x6c], r8
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xb8], rcx
mov r8d, dword [rsp + 0x70]
mov dword [rsp + 0xc0], r8d
mov r9, rdx
shr r9, 0x20
mov dword [rdi + 0x10], r8d
mov qword [rdi + 8], rcx
mov dword [rdi + 0x14], eax
mov dword [rdi + 0x18], edx
mov dword [rdi + 0x1c], r9d
mov byte [rdi], 1
jmp 0x18005989c
mov rax, qword [rsp + 0x38]
movups xmm0, xmmword [rsp + 0x40]
mov qword [rdi + 8], rax
movups xmmword [rdi + 0x10], xmm0
mov byte [rdi], 1
jmp 0x18005989c
mov rax, qword [rsp + 0x30]
movups xmm0, xmmword [rsp + 0x38]
jmp 0x18005999f
movzx eax, al
shl rax, 0x20
jmp 0x18005999f
lea rax, [0x180075e30]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 1
lea rax, [0x180077a08]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
lea rdx, [0x180075e50]
lea rcx, [rsp + 0x30]
call fcn.18000b980
ud2