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

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov dword [rax + 0x18], r8d
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x8d8
mov esi, dword [r9]
mov edx, dword [rsp + 0x938]
movaps xmmword [rax - 0x38], xmm6
mov r9d, r8d
mov rbp, rcx
mov dword [rsp + 0x60], esi
cmp esi, edx
jae 0x100166df1
and qword [rsp + 0xa0], 0
xorpd xmm6, xmm6
mov rax, qword [rbp + 0x28]
mov r11d, dword [rsp + 0x940]
mov r10d, dword [rsp + 0x948]
mov ecx, esi
mov rbx, qword [rax + rcx*8]
xor eax, eax
mov r8d, dword [rbx]
mov qword [rsp + 0x88], rbx
mov edi, r8d
and r8d, 0xfffff
and edi, 0xfff00000
mov dword [rsp + 0x68], r8d
cmp dword [rbx + 0x10], eax
je 0x100166e19
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x70], rax
mov ecx, dword [rax]
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + rcx*8]
mov ecx, dword [rsp + 0x908]
mov qword [rsp + 0x78], rax
cmp dword [rax + 0x14], ecx
jne 0x100166975
xor ecx, ecx
cmp r10d, ecx
je 0x10016628a
cmp edi, 0x11200000
jne 0x100166d7c
mov ecx, r11d
mov dword [rsp + 0x70], ecx
test r11d, r11d
je 0x1001662a6
cmp dword [rax + 0x18], r9d
cmovne ecx, dword [rsp + 0xa0]
mov dword [rsp + 0x70], ecx
cmp edi, 0x73500000
je 0x1001666b4
cmp edi, 0x73600000
je 0x1001666b4
cmp edi, 0x73700000
je 0x1001666b4
cmp edi, 0x73800000
je 0x1001666b4
cmp edi, 0x10f00000
je 0x1001666b4
cmp edi, 0x74700000
je 0x10016660c
cmp edi, 0x74600000
je 0x10016660c
cmp edi, 0x74400000
je 0x10016660c
cmp edi, 0x74500000
je 0x10016660c
cmp edi, 0x74300000
je 0x10016660c
cmp edi, 0x11100000
je 0x1001663be
cmp edi, 0x74100000
je 0x1001663be
cmp edi, 0x11200000
jne 0x1001663a7
xor edi, edi
cmp ecx, edi
je 0x100166d7c
cmp r10d, edi
je 0x100166d7c
cmp r8d, edi
jbe 0x10016638f
mov esi, dword [rsp + 0x958]
mov rdx, rdi
mov r9d, r8d
mov rax, qword [rbx + 0x18]
mov ecx, dword [rdx + rax]
mov rax, qword [rbp + 0x20]
add rdx, 4
sub r9, 1
mov r8, qword [rax + rcx*8]
mov eax, dword [rsp + 0x950]
mov dword [r8 + 0x34], esi
mov dword [r8 + 0x30], eax
jne 0x100166363
mov esi, dword [rsp + 0x60]
mov rdx, rbx
mov rcx, rbp
call fcn.10014fa00
cmp eax, edi
jl 0x100166df3
jmp 0x100166d75
xor edi, edi
cmp r11d, edi
je 0x100166d7c
cmp dword [rax + 0x18], r9d
jne 0x100166d7c
jmp 0x10016638f
mov r8d, dword [rsp + 0x908]
mov dword [rsp + 0x58], r9d
lea eax, [rsi + 1]
mov dword [rsp + 0x50], r8d
mov dword [rsp + 0x48], 1
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x84], eax
mov dword [rsp + 0x60], eax
xor eax, eax
lea rcx, [rsp + 0x64]
lea r9, [rsp + 0x84]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x64], eax
mov rax, qword [rbx + 0x18]
mov edx, dword [rax]
lea rcx, [rsp + 0xc0]
mov r8d, 1
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x2c0]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.1001661c0
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov esi, dword [rsp + 0x70]
cmp esi, ecx
je 0x10016649e
mov rdx, rbx
mov rcx, rbp
cmp edi, 0x11100000
jne 0x100166481
mov eax, dword [rsp + 0x68]
and eax, 0xfffff
mov dword [rsp + 0x68], eax
or eax, 0x74200000
mov dword [rbx], eax
call fcn.10014fa00
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov eax, dword [rsp + 0x68]
or eax, edi
mov dword [rbx], eax
jmp 0x100166490
call fcn.10014fa00
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov rcx, qword [rsp + 0x78]
mov eax, dword [rbp + 0x8c]
mov dword [rcx + 4], eax
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x938]
lea r9, [rsp + 0x84]
mov dword [rsp + 0x84], eax
mov rax, qword [rbx + 0x18]
xor ebx, ebx
mov edx, dword [rax]
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], ecx
lea rcx, [rsp + 0x64]
lea r8d, [rbx + 1]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xc0]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x2c0]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.1001661c0
cmp eax, ebx
jl 0x100166df3
cmp esi, ebx
je 0x1001665f9
mov edx, dword [rbp + 0xc0]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
movsd qword [rsp + 0x20], xmm6
call fcn.10014f6f4
mov esi, eax
cmp eax, 0xffffffff
je 0x100166d93
lea rdx, [0x100002840]
mov ecx, 0x98
call fcn.1001503a8
mov rbx, rax
xor eax, eax
cmp rbx, rax
je 0x10016658d
or ecx, 0xffffffff
mov dword [rbx], eax
mov dword [rbx + 4], eax
mov qword [rbx + 8], rax
mov dword [rbx + 0x10], eax
mov qword [rbx + 0x18], rax
mov dword [rbx + 0x4c], ecx
mov dword [rbx + 0x50], ecx
mov dword [rbx + 0x20], eax
mov qword [rbx + 0x28], rax
mov dword [rbx + 0x30], eax
mov qword [rbx + 0x38], rax
mov dword [rbx + 0x40], eax
mov dword [rbx + 0x44], eax
mov dword [rbx + 0x48], eax
mov dword [rbx + 0x54], eax
mov qword [rbx + 0x58], rax
jmp 0x100166590
mov rbx, rax
cmp rbx, rax
je 0x100166d93
xor r8d, r8d
mov dword [rsp + 0x20], eax
mov r9d, 1
mov rcx, rbx
mov edx, 0x74b00001
cmp edi, 0x11100000
je 0x1001665bb
mov edx, 0x74a00001
call fcn.10014fca0
mov r11d, eax
xor eax, eax
cmp r11d, eax
jl 0x100166dbe
mov rdi, qword [rsp + 0x88]
mov rdx, rbx
mov rcx, rbp
mov rax, qword [rdi + 0x58]
mov qword [rbx + 0x58], rax
mov rax, qword [rbx + 0x18]
mov dword [rax], esi
call fcn.10014f56c
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov esi, dword [rsp + 0x84]
mov edx, dword [rsp + 0x938]
jmp 0x100166d7e
xor edi, edi
lea eax, [rsi + 1]
mov dword [rsp + 0x94], eax
mov dword [rsp + 0x64], edi
cmp ecx, edi
je 0x10016664c
mov rdx, rbx
mov rcx, rbp
call fcn.10014fa00
cmp eax, edi
jl 0x100166df3
mov rcx, qword [rsp + 0x78]
mov eax, dword [rbp + 0x8c]
mov edx, dword [rsp + 0x938]
mov dword [rcx + 4], eax
mov ecx, dword [rsp + 0x70]
mov rax, qword [rbx + 0x18]
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov edx, dword [rax]
lea rcx, [rsp + 0x64]
lea r9, [rsp + 0x94]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xc0]
mov r8d, 1
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x2c0]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.1001661c0
cmp eax, edi
jl 0x100166df3
mov esi, dword [rsp + 0x94]
jmp 0x100166600
cmp r8d, 1
jne 0x100166da9
xor edi, edi
cmp ecx, edi
je 0x1001666f6
mov rdx, rbx
mov rcx, rbp
call fcn.100165b88
cmp rax, rdi
je 0x100166d93
mov rdx, rax
mov rcx, rbp
call fcn.10014f56c
cmp eax, edi
jl 0x100166df3
mov ecx, dword [rsp + 0x70]
mov edx, dword [rsp + 0x938]
lea edi, [rsi + 1]
xor esi, esi
lea r9, [rsp + 0x80]
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], esi
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x90], esi
mov dword [rsp + 0x64], esi
mov rax, qword [rbx + 0x18]
lea rcx, [rsp + 0x64]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0xc0]
mov dword [rsp + 0x80], edi
mov edx, dword [rax]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x2c0]
mov qword [rsp + 0x20], rcx
lea r8d, [rsi + 1]
mov rcx, rbp
call fcn.1001661c0
cmp eax, esi
jl 0x100166df3
mov esi, dword [rsp + 0x70]
xor eax, eax
cmp esi, eax
je 0x10016679f
xor r8d, r8d
mov rdx, rbx
mov rcx, rbp
call fcn.100165b88
xor ecx, ecx
cmp rax, rcx
je 0x100166d93
mov rdx, rax
mov rcx, rbp
call fcn.10014f56c
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov ecx, dword [rsp + 0x938]
mov rax, qword [rbx + 0x18]
mov dword [rsp + 0x80], edi
mov edx, dword [rax]
xor edi, edi
lea r9, [rsp + 0x80]
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x38], ecx
lea rcx, [rsp + 0x90]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x4c0]
xor r8d, r8d
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x6c0]
mov qword [rsp + 0x20], rcx
mov rcx, rbp
call fcn.1001661c0
cmp eax, edi
jl 0x100166df3
cmp esi, edi
je 0x10016695b
mov eax, dword [rsp + 0x90]
lea ecx, [rdi + 1]
cmp dword [rsp + 0x64], eax
jne 0x100166d9a
cmp eax, edi
jbe 0x100166854
mov rdx, rdi
mov r8, rax
mov eax, dword [rsp + rdx + 0xc0]
cmp dword [rsp + rdx + 0x4c0], eax
cmovne ecx, edi
add rdx, 4
sub r8, 1
jne 0x100166831
cmp ecx, edi
je 0x100166d9a
lea rdx, [0x100002840]
mov ecx, 0x98
call fcn.1001503a8
mov rbx, rax
cmp rax, rdi
je 0x1001668a6
mov dword [rax], edi
mov dword [rax + 4], edi
mov qword [rax + 8], rdi
mov dword [rax + 0x10], edi
mov qword [rax + 0x18], rdi
mov dword [rax + 0x20], edi
mov qword [rax + 0x28], rdi
mov dword [rax + 0x30], edi
mov qword [rax + 0x38], rdi
mov dword [rax + 0x40], edi
mov dword [rax + 0x44], edi
mov dword [rax + 0x48], edi
or eax, 0xffffffff
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x58], rdi
mov dword [rbx + 0x4c], eax
mov dword [rbx + 0x50], eax
jmp 0x1001668a9
mov rbx, rdi
cmp rbx, rdi
je 0x100166d93
mov r9d, dword [rsp + 0x90]
mov rcx, rbx
mov dword [rsp + 0x20], edi
mov edx, r9d
lea r8d, [r9 + r9]
and edx, 0xfffff
or edx, 0x73400000
call fcn.10014fca0
cmp eax, edi
mov r11d, eax
jl 0x100166dbe
mov rdi, qword [rsp + 0x88]
mov rcx, qword [rbx + 0x18]
lea rdx, [rsp + 0x4c0]
mov rax, qword [rdi + 0x58]
mov qword [rbx + 0x58], rax
mov r8d, dword [rsp + 0x64]
shl r8, 2
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x64]
mov rcx, qword [rbx + 8]
lea rdx, [rsp + 0x2c0]
shl r8, 2
call sub.msvcrt.dll_memcpy
mov r8d, dword [rsp + 0x64]
mov rax, qword [rbx + 8]
shl r8, 2
lea rdx, [rsp + 0x6c0]
lea rcx, [r8 + rax]
call sub.msvcrt.dll_memcpy
mov rdx, rbx
mov rcx, rbp
call fcn.10014f56c
xor ecx, ecx
cmp eax, ecx
jl 0x100166df3
mov rcx, qword [rsp + 0x78]
mov eax, dword [rbp + 0x8c]
mov esi, dword [rsp + 0x80]
mov dword [rcx + 4], eax
jmp 0x100166600
cmp edi, 0x20700000
jne 0x100166de7
xor edi, edi
cmp r10d, edi
jne 0x100166d7c
mov r9, qword [rbx + 8]
mov rcx, qword [rbp + 0x20]
mov eax, dword [r9]
mov r10, qword [rcx + rax*8]
mov eax, r8d
mov edx, dword [r10 + 0x14]
mov qword [rsp + 0xa8], rax
shl rax, 2
mov qword [rsp + 0x78], rax
mov eax, dword [rax + r9]
mov qword [rsp + 0xb0], r10
mov rcx, qword [rcx + rax*8]
cmp edx, dword [rcx + 0x14]
jne 0x100166e10
cmp qword [rsp + 0x920], rdi
je 0x100166e07
cmp qword [rsp + 0x928], rdi
je 0x100166e07
cmp qword [rsp + 0x930], rdi
je 0x100166e07
cmp edx, dword [rsp + 0x908]
jne 0x100166de7
cmp r11d, edi
je 0x100166d75
mov ecx, dword [rsp + 0x910]
xor r11d, r11d
mov edi, 1
cmp dword [r10 + 0x18], ecx
mov eax, r11d
cmovne eax, r8d
movsxd rdx, eax
mov qword [rsp + 0x98], rdx
cmp r8d, r11d
jbe 0x100166aaa
mov r11, qword [rbp + 0x20]
mov rbx, qword [rsp + 0xa8]
lea r10, [r9 + rdx*4]
mov r9, qword [rsp + 0x70]
xor esi, esi
mov eax, dword [r9]
mov rcx, qword [r11 + rax*8]
mov eax, dword [r10]
mov rdx, qword [r11 + rax*8]
mov eax, dword [rdx + 0xc]
cmp dword [rcx + 0xc], eax
jne 0x100166a83
mov eax, dword [rdx + 0x10]
cmp dword [rcx + 0x10], eax
jne 0x100166a83
mov eax, dword [rdx + 8]
cmp dword [rcx + 8], eax
jne 0x100166a83
mov eax, dword [rdx + 4]
cmp dword [rcx + 4], eax
jne 0x100166a83
mov eax, dword [rdx + 0x3c]
cmp dword [rcx + 0x3c], eax
je 0x100166a85
mov edi, esi
add r9, 4
add r10, 4
sub rbx, 1
jne 0x100166a4d
mov esi, dword [rsp + 0x60]
mov rbx, qword [rsp + 0x88]
mov rdx, qword [rsp + 0x98]
xor r11d, r11d
mov rax, qword [rsp + 0x930]
mov eax, dword [rax]
lea ecx, [r8 + rax]
cmp ecx, 0x80
jae 0x100166dd8
cmp edi, r11d
je 0x100166b3b
xor edi, edi
mov r9d, edi
cmp r8d, edi
jbe 0x100166d6a
mov rbp, qword [rsp + 0x920]
mov rsi, qword [rsp + 0x928]
mov r11, rdx
mov r10, rdi
mov rdi, qword [rsp + 0x930]
shl r11, 2
mov rdx, qword [rbx + 8]
mov ecx, dword [rdi]
mov eax, dword [r11 + rdx]
add ecx, r9d
add r11, 4
mov dword [rbp + rcx*4], eax
mov rdx, qword [rbx + 0x18]
mov ecx, dword [rdi]
mov eax, dword [r10 + rdx]
add ecx, r9d
inc r9d
add r10, 4
mov dword [rsi + rcx*4], eax
cmp r9d, r8d
jb 0x100166af9
mov esi, dword [rsp + 0x60]
mov rbp, qword [rsp + 0x900]
jmp 0x100166d6a
lea rdx, [0x100002840]
mov ecx, 0x98
call fcn.1001503a8
xor edi, edi
mov rbx, rax
cmp rax, rdi
je 0x100166b8f
mov dword [rax], edi
mov dword [rax + 4], edi
mov qword [rax + 8], rdi
mov dword [rax + 0x10], edi
mov qword [rax + 0x18], rdi
mov dword [rax + 0x20], edi
mov qword [rax + 0x28], rdi
mov dword [rax + 0x30], edi
mov qword [rax + 0x38], rdi
mov dword [rax + 0x40], edi
mov dword [rax + 0x44], edi
mov dword [rax + 0x48], edi
or eax, 0xffffffff
mov dword [rbx + 0x54], edi
mov qword [rbx + 0x58], rdi
mov dword [rbx + 0x4c], eax
mov dword [rbx + 0x50], eax
jmp 0x100166b92
mov rbx, rdi
cmp rbx, rdi
je 0x100166d93
mov eax, dword [rsp + 0x68]
mov rcx, rbx
mov dword [rsp + 0x20], edi
mov edx, eax
mov r9d, eax
mov r8d, eax
and edx, 0xfffff
bts edx, 0x1c
call fcn.10014fca0
cmp eax, edi
mov r11d, eax
jl 0x100166dbe
mov rdi, qword [rsp + 0x88]
mov rdx, rbx
mov rcx, rbp
mov rax, qword [rdi + 0x58]
mov qword [rbx + 0x58], rax
call fcn.10014f56c
mov r11d, eax
xor eax, eax
cmp r11d, eax
jl 0x100166dbe
mov ecx, dword [rsp + 0x910]
mov rax, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x78]
cmp dword [rax + 0x18], ecx
mov rcx, qword [rbx + 8]
jne 0x100166c14
mov rdx, qword [rdi + 8]
jmp 0x100166c1c
mov rax, qword [rdi + 8]
lea rdx, [r8 + rax]
call sub.msvcrt.dll_memcpy
movsxd r8, dword [rsp + 0x68]
xor r11d, r11d
mov dword [rsp + 0x70], r11d
mov rax, r8
cmp r8d, r11d
jbe 0x100166d6a
shl rax, 2
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x78], rax
mov edx, dword [rbp + 0xa0]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
movsd qword [rsp + 0x20], xmm6
call fcn.10014f6f4
mov rdx, qword [rsp + 0x930]
mov r10d, dword [rsp + 0x70]
mov ecx, dword [rdx]
mov r8, qword [rsp + 0x920]
add ecx, r10d
mov dword [r8 + rcx*4], eax
mov eax, dword [rdx]
add eax, r10d
mov r11d, dword [r8 + rax*4]
cmp r11d, 0xffffffff
je 0x100166db8
mov r8, qword [rbp + 0x20]
mov rax, qword [rdi + 0x18]
mov r9, qword [rsp + 0x88]
mov ecx, dword [r9 + rax]
mov rdx, qword [r8 + rcx*8]
mov rcx, qword [r8 + r11*8]
call fcn.10014fb98
xor r11d, r11d
cmp eax, r11d
jl 0x100166db8
call fcn.10014fc5c
cmp eax, r11d
jl 0x100166db8
mov r8, qword [rsp + 0x930]
mov rdx, qword [rbx + 0x18]
mov rax, qword [rsp + 0x920]
mov ecx, dword [r8]
add ecx, r10d
mov eax, dword [rax + rcx*4]
mov dword [r9 + rdx], eax
mov ecx, dword [r8]
mov rdx, qword [rdi + 0x18]
mov eax, dword [r9 + rdx]
mov rdx, qword [rsp + 0x928]
add ecx, r10d
mov dword [rdx + rcx*4], eax
mov rax, qword [rbp + 0x20]
mov r8, qword [rdi + 8]
mov edx, dword [r9 + r8]
mov rcx, qword [rax + rdx*8]
mov eax, dword [rsp + 0x910]
cmp dword [rcx + 0x18], eax
jne 0x100166d31
mov rax, qword [rbx + 8]
mov dword [r9 + rax], edx
jmp 0x100166d42
mov rax, qword [rsp + 0x78]
mov rcx, qword [rbx + 8]
mov eax, dword [r8 + rax]
mov dword [r9 + rcx], eax
mov r8d, dword [rsp + 0x68]
add qword [rsp + 0x78], 4
inc r10d
add r9, 4
mov dword [rsp + 0x70], r10d
mov qword [rsp + 0x88], r9
cmp r10d, r8d
jb 0x100166c4b
mov rax, qword [rsp + 0x930]
add dword [rax], r8d
mov edx, dword [rsp + 0x938]
inc esi
mov dword [rsp + 0x60], esi
cmp esi, edx
jae 0x100166df1
mov r9d, dword [rsp + 0x910]
jmp 0x10016620a
mov eax, 0x8007000e
jmp 0x100166df3
lea r9, [0x100036bf0]
mov r8d, 0x12e1
jmp 0x100166e26
lea r9, [0x100036bb8]
mov r8d, 0x12e0
jmp 0x100166e26
mov r11d, 0x8007000e
mov rax, qword [0x10019f820]
mov qword [0x10019f820], rbx
mov qword [rbx + 0x90], rax
mov eax, r11d
jmp 0x100166df3
lea r9, [0x100036c78]
mov r8d, 0x1194
jmp 0x100166e26
mov rax, qword [rsp + 0x918]
mov dword [rax], esi
xor eax, eax
movaps xmm6, xmmword [rsp + 0x8c0]
add rsp, 0x8d8
pop rdi
pop rsi
pop rbp
pop rbx
ret
lea r9, [0x100036c50]
jmp 0x100166da1
lea r9, [0x100036c10]
jmp 0x100166db0
lea r9, [0x100036b88]
mov r8d, 0x12df
mov rdx, qword [rbx + 0x58]
mov rcx, rbp
call fcn.10013cf50
mov eax, 0x80004005
jmp 0x100166df3