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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov r13, r8
mov rbx, rdx
mov r14, rcx
mov r9, qword [rdx + 0x20]
lea rsi, [rdx + 0x20]
mov r8d, 0xffffffff
test byte [r9 + 0x18], 0x40
je 0x1800716c8
mov eax, dword [r9 + 0x58]
cmp eax, r8d
cmovae eax, r8d
or dword [r9 + 0xb8], 0x20
lea rsi, [rdx + 0x20]
test eax, eax
je 0x1800716c8
xor ecx, ecx
mov edx, eax
mov rax, qword [r9 + 0x68]
or dword [rcx + rax + 4], 2
lea rcx, [rcx + 0x14]
sub rdx, 1
jne 0x1800716b1
lea rsi, [rbx + 0x20]
mov r9, qword [rbx + 0x20]
mov ebp, dword [r9 + 0x58]
cmp ebp, 0x20
jae 0x180071772
xor edx, edx
mov qword [rsp + 0x28], rdx
xor ecx, ecx
xor r8d, r8d
mov r9, qword [r9 + 0x68]
mov r10, r9
mov r11d, ebp
test ebp, ebp
je 0x180071757
mov edi, ebp
nop word [rax + rax]
mov eax, dword [r10]
shr eax, 4
and eax, 0x1f
bts edx, eax
lea r10, [r10 + 0x14]
sub rdi, 1
jne 0x180071700
mov dword [rsp + 0x28], edx
mov rdx, r9
nop dword [rax]
mov eax, dword [rdx]
and eax, 0x1f
bts ecx, eax
add rdx, 0x14
sub r11, 1
jne 0x180071720
mov dword [rsp + 0x2c], ecx
mov rcx, rbp
nop dword [rax]
mov eax, dword [r9]
shr eax, 9
and eax, 0x1f
bts r8d, eax
lea r9, [r9 + 0x14]
sub rcx, 1
jne 0x180071740
movsd xmm0, qword [rsp + 0x28]
movsd qword [rbx + 0x80], xmm0
mov dword [rbx + 0x88], r8d
lea rsi, [rbx + 0x20]
jmp 0x1800717a8
mov dword [rsp + 0x28], r8d
mov qword [rsp + 0x90], 0xffffffffffffffff
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x2c], rax
movsd xmm0, qword [rsp + 0x28]
movsd qword [rbx + 0x80], xmm0
mov eax, dword [rsp + 0x30]
mov dword [rbx + 0x88], eax
xor cl, cl
mov byte [rsp + 0x90], cl
mov byte [rsp + 0x98], cl
mov dword [rbx + 0xb4], 0
lea rbp, [r14 + 8]
movzx r12d, byte [r14 + 5]
shl r12d, 0x10
movzx eax, byte [r14 + 6]
shl eax, 8
add r12d, eax
movzx eax, byte [r14 + 4]
shl eax, 0x18
add r12d, eax
movzx eax, byte [r14 + 7]
add r12d, eax
mov r14d, 0
je 0x180071b0b
xor r9d, r9d
nop dword [rax]
movzx r15d, byte [rbp + 6]
shl r15d, 8
movzx eax, byte [rbp + 5]
shl eax, 0x10
add r15d, eax
movzx eax, byte [rbp + 4]
shl eax, 0x18
add r15d, eax
movzx eax, byte [rbp + 7]
add r15d, eax
mov r10, qword [rsi]
mov r8d, dword [r10 + 0x30]
mov edx, r15d
shr edx, 0x1f
not dl
and edx, 1
mov eax, r8d
and eax, 0xfffffffe
xor ecx, ecx
cmp eax, 4
sete cl
cmp ecx, edx
jne 0x180071ac0
shr r15d, 0x1c
and r15d, 1
and r8d, 0xfffffffd
xor edi, edi
cmp r8d, 5
sete dil
mov dword [rsp + 0xa8], edi
lea r8, str.start_subtable__u
mov rdx, qword [rbx + 0x10]
mov rcx, r10
call fcn.180033040
test al, al
je 0x180071ac0
cmp byte [rsp + 0x98], 0
jne 0x18007190d
movzx ecx, byte [rbp + 4]
shl ecx, 0x18
movzx eax, byte [rbp + 5]
shl eax, 0x10
add ecx, eax
movzx eax, byte [rbp + 6]
shl eax, 8
add ecx, eax
movzx eax, byte [rbp + 7]
add ecx, eax
bt ecx, 0x1e
jae 0x18007190d
mov byte [rsp + 0x98], 1
mov rax, qword [rsi]
mov rdx, qword [rax + 0x78]
mov ecx, dword [rax + 0x58]
test ecx, ecx
je 0x18007190d
lea rax, [rdx + 0x10]
mov r8d, ecx
mov edi, 0xffffffff
nop word [rax + rax]
mov byte [rax + 2], 2
mov rcx, qword [rsi]
mov edx, dword [rcx + 0x30]
and edx, 0xfffffffd
mov ecx, 1
cmp edx, 4
cmove cx, di
mov word [rax], cx
lea rax, [rax + 0x14]
sub r8, 1
jne 0x1800718e0
mov edi, dword [rsp + 0xa8]
cmp r15d, edi
je 0x180071920
mov rcx, qword [rsi]
mov r8d, dword [rcx + 0x58]
xor edx, edx
call fcn.18000eb00
test r13, r13
je 0x180071988
cmp r14d, dword [r13 + 4]
jb 0x180071934
lea rax, [0x1800bad40]
jmp 0x180071943
mov eax, r14d
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 8]
lea rax, [rax + rcx*8]
movsd xmm0, qword [rax]
movsd qword [rbx + 0x98], xmm0
mov eax, dword [rax + 8]
mov dword [rbx + 0xa0], eax
cmp r14d, dword [r13 + 4]
jb 0x180071967
lea rax, [0x1800bad40]
jmp 0x180071976
mov eax, r14d
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 8]
lea rax, [rax + rcx*8]
movsd xmm0, qword [rax + 0xc]
movsd qword [rbx + 0xa4], xmm0
mov eax, dword [rax + 0x14]
jmp 0x1800719c4
mov eax, 0xffffffff
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x3c], rax
movsd xmm1, qword [rsp + 0x38]
movsd qword [rbx + 0xa4], xmm1
mov eax, dword [rsp + 0x40]
movsd qword [rbx + 0x98], xmm1
mov dword [rbx + 0xa0], eax
mov dword [rbx + 0xac], eax
lea eax, [r12 - 1]
xor r9d, r9d
mov edx, r9d
cmp r14d, eax
cmovb rdx, rbp
lea rdi, [rbx + 0x28]
mov qword [rsp + 0x28], rdi
mov rax, qword [rdi + 0x30]
mov rcx, qword [rax + 0x10]
mov qword [rdi + 8], rcx
mov r8d, dword [rax + 0x18]
add r8, rcx
mov qword [rdi + 0x10], r8
mov eax, r8d
sub eax, ecx
mov dword [rdi + 0x18], eax
test rdx, rdx
je 0x180071a61
cmp rdx, rcx
jb 0x180071a55
cmp r8, rdx
jbe 0x180071a55
mov qword [rdi + 8], rdx
sub r8, rdx
movzx ecx, byte [rdx + 1]
movzx eax, byte [rdx]
shl rax, 8
add rcx, rax
shl rcx, 8
movzx eax, byte [rdx + 2]
add rcx, rax
shl rcx, 8
movzx eax, byte [rdx + 3]
add rcx, rax
cmp r8, rcx
cmova r8, rcx
add r8, rdx
mov qword [rdi + 0x10], r8
sub r8d, edx
mov dword [rdi + 0x18], r8d
jmp 0x180071a61
mov qword [rdi + 0x10], r9
mov qword [rdi + 8], r9
mov dword [rdi + 0x18], r9d
mov rdx, rbx
mov rcx, rbp
call fcn.18006aaf0
or byte [rsp + 0x90], al
mov rax, qword [rdi + 0x30]
mov rdx, qword [rax + 0x10]
mov qword [rdi + 8], rdx
mov ecx, dword [rax + 0x18]
add rcx, rdx
mov qword [rdi + 0x10], rcx
sub ecx, edx
mov dword [rdi + 0x18], ecx
cmp r15d, dword [rsp + 0xa8]
je 0x180071aa6
mov rcx, qword [rsi]
mov r8d, dword [rcx + 0x58]
xor edx, edx
call fcn.18000eb00
mov r9d, dword [rbx + 0xb4]
lea r8, str.end_subtable__u
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rsi]
call fcn.180033040
movzx edx, byte [rbp + 1]
movzx eax, byte [rbp]
shl rax, 8
add rdx, rax
shl rdx, 8
movzx ecx, byte [rbp + 2]
add rdx, rcx
shl rdx, 8
movzx ecx, byte [rbp + 3]
add rbp, rcx
add rbp, rdx
inc dword [rbx + 0xb4]
mov r9d, dword [rbx + 0xb4]
inc r14d
cmp r14d, r12d
jb 0x180071800
movzx eax, byte [rsp + 0x90]
jmp 0x180071b0e
movzx eax, cl
mov rbx, qword [rsp + 0xa0]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret