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

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa0
xor r14d, r14d
mov rbx, rcx
lea rax, [r11 - 0x80]
mov dword [rsp + 0x50], 0x47554244
mov dword [rsp + 0x54], r14d
lea edi, [r14 + 0x28]
lea rcx, [r11 - 0x68]
xor edx, edx
mov r8, rdi
mov qword [r11 - 0x80], r14
mov qword [r11 - 0x78], rax
mov qword [rsp + 0x68], r14
mov rbp, r14
mov qword [rsp + 0x48], r14
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r14
mov r13d, r14d
call sub.msvcrt.dll_memset
lea r9d, [r14 + 1]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
mov r8d, edi
mov dword [rsp + 0x70], edi
mov qword [rsp + 0x20], r14
call fcn.100154878
cmp eax, r14d
mov edi, eax
mov dword [rsp + 0xe8], eax
jl 0x10016be10
mov eax, dword [rbx + 0x188]
mov dword [rsp + 0x84], eax
cmp eax, r14d
je 0x10016bc15
mov rcx, rax
lea eax, [r14 + 4]
lea rsi, [r14 - 1]
mul rcx
cmovo rax, rsi
lea rdx, [0x100002840]
mov rcx, rax
call fcn.10007b104
mov qword [rsp + 0x68], rax
cmp rax, r14
je 0x10016bc01
mov r8d, dword [rsp + 0x84]
xor edx, edx
mov rcx, rax
shl r8, 2
call sub.msvcrt.dll_memset
mov r11d, dword [rsp + 0x84]
lea eax, [rsi + 9]
mul r11
cmovo rax, rsi
lea rdx, [0x100002840]
mov rcx, rax
call fcn.10007b104
mov rsi, rax
mov qword [rsp + 0x38], rax
cmp rax, r14
je 0x10016bbfe
mov r15d, dword [rsp + 0x84]
xor edx, edx
mov rcx, rax
shl r15d, 3
mov r8d, r15d
call sub.msvcrt.dll_memset
mov ecx, dword [rsp + 0x84]
lea eax, [r14 + 4]
shl ecx, 2
lea rbp, [r14 - 1]
mul rcx
lea rdx, [0x100002840]
cmovo rax, rbp
mov rcx, rax
call fcn.10007b104
mov qword [rsp + 0x40], rax
cmp rax, r14
je 0x10016bbf9
mov r8d, dword [rsp + 0x84]
xor edx, edx
mov rcx, rax
shl r8d, 2
shl r8, 2
call sub.msvcrt.dll_memset
xor r10d, r10d
mov r12d, r14d
cmp dword [rsp + 0x84], r10d
jbe 0x10016b7a4
mov rbp, r10
add rsi, 2
mov rdi, qword [rsp + 0x40]
mov eax, 0xffff
mov word [rsi - 2], r10w
mov word [rsi], ax
mov rax, qword [rbx + 0x180]
lea r8, [rbp + 0xc]
mov ecx, dword [rax + rbp + 8]
mov r9d, 4
or r11d, 0xffffffff
mov dword [rsi + 2], ecx
mov rax, qword [rbx + 0x180]
cmp dword [r8 + rax], r11d
je 0x10016b6e3
mov ecx, dword [r8 + rax]
mov rax, qword [rbx + 0x20]
mov rdx, qword [rax + rcx*8]
mov dword [rdx + 0x80], r12d
cmp qword [rdx + 0x60], r10
je 0x10016b6e3
mov rax, qword [rbx + 0x180]
inc r13d
mov ecx, dword [r8 + rax]
mov dword [rdi + r14*4], ecx
inc r14
add r8, 4
sub r9, 1
jne 0x10016b6a8
mov rax, qword [rbx + 0x180]
mov edi, dword [rsp + 0xe8]
mov rcx, qword [rax + rbp]
cmp rcx, r10
je 0x10016b782
movzx eax, word [rcx + 0x18]
mov word [rsi - 2], ax
mov rax, qword [rbx + 0x180]
mov rcx, qword [rax + rbp]
mov rdx, qword [rcx + 0x10]
cmp rdx, r10
je 0x10016b782
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0x50]
mov r9d, 7
mov r8d, r11d
mov qword [rsp + 0x20], rax
call fcn.100154878
xor r10d, r10d
cmp eax, r10d
jl 0x10016be06
mov edx, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0xf0]
mov r9, qword [rsp + 0x68]
mov ecx, r10d
cmp edx, r10d
jbe 0x10016b773
mov eax, ecx
cmp dword [r9 + rax*4], r8d
je 0x10016b773
inc ecx
cmp ecx, edx
jb 0x10016b765
cmp ecx, edx
jne 0x10016b77f
mov dword [r9 + rdx*4], r8d
inc dword [rsp + 0x7c]
mov word [rsi], cx
inc r12d
add rbp, 0x20
add rsi, 8
cmp r12d, dword [rsp + 0x84]
jb 0x10016b67a
mov rsi, qword [rsp + 0x38]
or rbp, 0xffffffffffffffff
mov r8d, dword [rsp + 0x7c]
xor r14d, r14d
cmp r8d, r14d
je 0x10016b7e0
mov rdx, qword [rsp + 0x68]
lea rax, [rsp + 0x80]
lea r9d, [r14 + 1]
lea rcx, [rsp + 0x50]
shl r8d, 2
mov qword [rsp + 0x20], rax
call fcn.100154878
cmp eax, r14d
mov edi, eax
jl 0x10016be0b
lea rax, [rsp + 0x88]
lea rcx, [rsp + 0x50]
mov r9d, 1
mov r8d, r15d
mov rdx, rsi
mov qword [rsp + 0x20], rax
call fcn.100154878
cmp eax, r14d
mov edi, eax
jl 0x10016be0b
cmp r13d, r14d
je 0x10016bc10
mov r15, qword [rsp + 0x40]
lea rcx, [0x100154b28]
mov r9, rbx
mov rdx, r15
mov r8d, r13d
call fcn.1000995f8
mov r11d, 1
mov dword [rsp + 0x8c], r11d
cmp r13d, r11d
jbe 0x10016b87e
mov r10, qword [rbx + 0x20]
lea r8, [r15 + 4]
lea r9d, [r13 - 1]
mov eax, dword [r8 - 4]
mov rdx, qword [r10 + rax*8]
mov eax, dword [r8]
mov rcx, qword [r10 + rax*8]
mov rax, qword [rcx + 0x60]
cmp qword [rdx + 0x60], rax
je 0x10016b874
inc r11d
mov dword [rsp + 0x8c], r11d
add r8, 4
sub r9, 1
jne 0x10016b850
mov ecx, r11d
mov eax, 0x14
mul rcx
lea rdx, [0x100002840]
cmovo rax, rbp
mov rcx, rax
call fcn.10007b104
mov rdi, rax
mov qword [rsp + 0x48], rax
cmp rax, r14
je 0x10016bbf2
mov ecx, dword [rsp + 0x8c]
xor edx, edx
lea eax, [rcx + rcx*4]
mov rcx, rdi
shl eax, 2
mov r8d, eax
mov dword [rsp + 0xf8], eax
call sub.msvcrt.dll_memset
xor ebp, ebp
mov esi, r14d
mov dword [rsp + 0xe8], r14d
cmp dword [rsp + 0x8c], r14d
jbe 0x10016bbb9
lea rax, [rdi + 0xc]
mov qword [rsp + 0x98], rax
mov ecx, dword [r15 + rbp*4]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + rcx*8]
mov r12, qword [rcx + 0x60]
mov rdx, qword [r12 + 0x40]
test rdx, rdx
je 0x10016b942
mov eax, r14d
mov r9d, 7
or r8d, 0xffffffff
lea rcx, [rax + rax*4]
lea rax, [rdi + rcx*4]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.100154878
mov edi, eax
test eax, eax
js 0x10016bda7
mov rdi, qword [rsp + 0x48]
mov rax, qword [r12 + 0x28]
mov rdx, qword [rax + 0x28]
test rdx, rdx
je 0x10016b97f
mov eax, r14d
mov r9d, 7
or r8d, 0xffffffff
lea rcx, [rax + rax*4]
lea rax, [rdi + rcx*4 + 4]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
call fcn.100154878
mov edi, eax
test eax, eax
js 0x10016bda7
cmp dword [r12 + 0x20], 1
jne 0x10016b992
mov rdx, qword [r12 + 0x30]
mov rdx, qword [rdx + 0x30]
jmp 0x10016b9a3
cmp dword [r12 + 0x20], 2
jne 0x10016b9ea
mov rdx, qword [r12 + 0x30]
mov rdx, qword [rdx + 0x38]
mov eax, r14d
lea rcx, [rax + rax*4]
mov rax, qword [rsp + 0x48]
lea r8, [rax + rcx*4 + 8]
mov ecx, dword [r15 + rbp*4]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x20], r8
mov r8d, 1
mov r9d, dword [rcx + 0x3c]
lea rcx, [rsp + 0x50]
and r9d, 0xe00000
call fcn.10016b0f4
mov edi, eax
test eax, eax
js 0x10016bda7
mov r14d, esi
mov dword [rsp + 0xf0], esi
mov r15, rbp
cmp esi, r13d
jae 0x10016ba55
mov r14, qword [rsp + 0x98]
mov r9, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x20]
mov eax, dword [r9 + rbp*4]
mov rcx, qword [rdx + rax*8]
cmp r12, qword [rcx + 0x60]
jne 0x10016ba4d
mov r8d, dword [rcx + 0x80]
jmp 0x10016ba40
mov eax, dword [r9 + rbp*4]
mov rcx, qword [rdx + rax*8]
cmp r12, qword [rcx + 0x60]
jne 0x10016ba45
cmp r8d, dword [rcx + 0x80]
jne 0x10016ba45
inc esi
inc rbp
cmp esi, r13d
jb 0x10016ba24
inc dword [r14]
cmp esi, r13d
jb 0x10016ba09
mov r14d, dword [rsp + 0xf0]
mov rdi, qword [rsp + 0x98]
mov eax, 0xc
mov ecx, dword [rdi]
mul rcx
mov rcx, 0xffffffffffffffff
lea rdx, [0x100002840]
cmovo rax, rcx
mov rcx, rax
call fcn.10007b104
mov qword [rsp + 0x30], rax
test rax, rax
je 0x10016bbf2
mov ecx, dword [rdi]
xor edx, edx
lea edi, [rcx + rcx*2]
mov rcx, rax
shl edi, 2
mov r8d, edi
mov dword [rsp + 0xf0], edi
call sub.msvcrt.dll_memset
xor r11d, r11d
mov rbp, r15
mov r15, qword [rsp + 0x40]
mov esi, r14d
cmp r14d, r13d
jae 0x10016bb4c
mov r14, qword [rsp + 0x30]
xor r10d, r10d
or rdi, 0xffffffffffffffff
mov r9, r14
mov ecx, dword [r15 + rbp*4]
mov rax, qword [rbx + 0x20]
mov rdx, qword [rax + rcx*8]
cmp r12, qword [rdx + 0x60]
jne 0x10016bb45
mov r8d, dword [rdx + 0x80]
lea rcx, [r11 + r11*2]
mov dword [r9], r8d
mov qword [r14 + rcx*4 + 4], rdi
jmp 0x10016bb30
mov rdx, qword [rbx + 0x20]
mov eax, dword [r15 + rbp*4]
mov rcx, qword [rdx + rax*8]
cmp r12, qword [rcx + 0x60]
jne 0x10016bb35
cmp r8d, dword [rcx + 0x80]
jne 0x10016bb35
mov eax, dword [r15 + rbp*4]
inc esi
mov rcx, qword [rdx + rax*8]
mov edx, dword [rcx + 0x10]
movzx eax, word [rcx + 0x68]
add rdx, r10
inc rbp
mov word [r14 + rdx*2 + 4], ax
cmp esi, r13d
jb 0x10016baf8
inc r11d
add r9, 0xc
add r10, 6
cmp esi, r13d
jb 0x10016bad1
mov edi, dword [rsp + 0xf0]
mov r14d, dword [rsp + 0xe8]
mov rax, qword [rsp + 0x48]
mov r12, qword [rsp + 0x30]
lea rcx, [r14 + r14*4]
mov r9d, 0xb
mov r8d, edi
lea rax, [rax + rcx*4 + 0x10]
lea rcx, [rsp + 0x50]
mov rdx, r12
mov qword [rsp + 0x20], rax
call fcn.100154878
mov edi, eax
test eax, eax
js 0x10016bdac
and qword [rsp + 0x30], 0
add qword [rsp + 0x98], 0x14
mov rdi, qword [rsp + 0x48]
inc r14d
mov dword [rsp + 0xe8], r14d
cmp r14d, dword [rsp + 0x8c]
jb 0x10016b8f5
mov r8d, dword [rsp + 0xf8]
lea rax, [rsp + 0x90]
lea rcx, [rsp + 0x50]
mov r9d, 1
mov rdx, rdi
mov qword [rsp + 0x20], rax
call fcn.100154878
mov rbp, qword [rsp + 0x38]
xor r14d, r14d
cmp eax, r14d
mov edi, eax
jl 0x10016bc06
jmp 0x10016bc15
mov rbp, qword [rsp + 0x38]
jmp 0x10016bc01
mov rbp, rsi
jmp 0x10016bc01
mov rbp, rax
mov edi, 0x8007000e
mov r12, qword [rsp + 0x30]
jmp 0x10016bdb1
mov rbp, qword [rsp + 0x38]
mov rdx, qword [rbx + 0xf8]
cmp rdx, r14
je 0x10016bc49
lea rax, [rsp + 0x94]
lea rcx, [rsp + 0x50]
mov r9d, 7
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.100154878
cmp eax, r14d
mov edi, eax
jl 0x10016bc06
mov rdx, qword [rbx + 0x190]
mov esi, 5
cmp rdx, r14
je 0x10016bca3
mov r8d, dword [rbx + 0x198]
lea rax, [rsp + 0x78]
lea rcx, [rsp + 0x50]
mov r9d, esi
mov qword [rsp + 0x20], rax
call fcn.100154878
cmp eax, r14d
jl 0x10016bc06
lea r8d, [rsi - 4]
lea rdx, [0x10002e437]
lea rcx, [rsp + 0x50]
mov r9d, esi
mov qword [rsp + 0x20], r14
call fcn.100154878
cmp eax, r14d
jl 0x10016bc06
lea rax, [rsp + 0x74]
lea rdx, [0x100036e10]
lea rcx, [rsp + 0x50]
mov r9d, esi
or r8d, 0xffffffff
mov qword [rsp + 0x20], rax
call fcn.100154878
cmp eax, r14d
jl 0x10016bc06
mov esi, dword [rsp + 0x54]
mov rcx, rbx
add esi, 3
shr esi, 2
add esi, 2
cmp esi, 0x8000
ja 0x10016bd8b
mov edx, esi
call fcn.10016be1c
cmp eax, r14d
mov edi, eax
jl 0x10016bc06
mov rcx, qword [rbx + 0x160]
mov r8d, dword [rbx + 0x168]
lea rdx, [rcx + 4]
dec r8d
lea rcx, [rcx + rsi*4 + 4]
shl r8, 2
call sub.msvcrt.dll_memmove
mov r11d, r14d
cmp dword [rsp + 0x84], r14d
jbe 0x10016bd4e
lea rcx, [rbp + 4]
mov eax, dword [rbx + 0x178]
inc r11d
add eax, esi
shl eax, 2
add dword [rcx], eax
add rcx, 8
cmp r11d, dword [rsp + 0x84]
jb 0x10016bd30
mov rdx, qword [rbx + 0x160]
lea rcx, [rsp + 0x50]
mov r8d, esi
add rdx, 4
call fcn.1001549fc
cmp eax, r14d
mov edi, eax
jl 0x10016bc06
add dword [rbx + 0x168], esi
mov eax, dword [rbx + 0x168]
add dword [rbx + 0x178], esi
mov dword [rbx + 0x174], eax
jmp 0x10016bd9f
lea r9, [0x1000341b0]
xor edx, edx
mov r8d, 0x11c3
call fcn.10013d018
mov edi, r14d
jmp 0x10016bc06
mov r12, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
call sub.msvcrt.dll_free
mov rcx, rbp
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_free
mov rcx, r12
call sub.msvcrt.dll_free
mov rcx, qword [rsp + 0x40]
call sub.msvcrt.dll_free
lea rcx, [rsp + 0x50]
call fcn.100154824
mov rbx, qword [rsp + 0xe0]
mov eax, edi
add rsp, 0xa0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r12, r10
jmp 0x10016bdac
mov r12, r14
jmp 0x10016bdac
mov r12, rbp
jmp 0x10016bdb1