Function at 0x687960
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x38]
cmp r12, qword [r14 + 0x10]
jbe 0x687ef8
push rbp
mov rbp, rsp
sub rsp, 0xb0
mov qword [rsp + 0xc0], rax
call fcn.00686d00
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x58], rbx
nop dword [rax]
test rdi, rdi
je 0x687a25
cmp qword [0x00a15710], rdi
jne 0x6879ee
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x78], rsi
mov rcx, qword [0x00a15718]
mov rax, rdi
mov rbx, rsi
call fcn.00404f60
test al, al
jne 0x687a01
mov rax, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x50]
mov r8, rdi
mov r9, rsi
xor edi, edi
xor esi, esi
add rsp, 0xb0
pop rbp
ret
mov r8, qword [0x00a16020]
mov r9, qword [0x00a16028]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
mov rdi, rax
mov rsi, rcx
add rsp, 0xb0
pop rbp
ret
test rbx, rbx
jbe 0x687eed
movzx edx, byte [rax]
cmp dl, 0xff
je 0x687e61
nop word [rax + rax]
cmp dl, 0xa
jb 0x687dcc
lea rdx, [rcx - 1]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 1
add rdx, rax
lea rdi, [rbx - 1]
mov qword [rsp], rdx
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov byte [rsp + 0x18], 0
call fcn.00403a80
xorps xmm15, xmm15
mov r14, qword [0x00a6a920]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x20]
lea rax, [rcx + 0xe]
mov rdx, qword [rsp + 0x60]
nop dword [rax]
cmp rdx, rax
jb 0x687ee5
lea r10, [rcx + 6]
cmp rax, r10
jb 0x687ed8
mov r11, rdx
sub r11, rcx
lea r12, [r11 - 6]
mov r13, r12
neg r12
sar r12, 0x3f
and r12, r10
lea r10, [rcx + 0x11]
mov r15, qword [rsp + 0x80]
lea rax, [r15 + r12]
nop dword [rax]
cmp rdx, r10
jb 0x687ed0
lea rbx, [rcx + 0xf]
cmp r10, rbx
jb 0x687ec5
lea rsi, [r11 - 0xf]
neg rsi
sar rsi, 0x3f
and rsi, rbx
movzx ebx, word [r15 + rsi]
mov rsi, r12
mov r12, qword [rsp + 0xc0]
mov dword [r12 + 0xf0], ebx
bt ebx, 9
jae 0x687da8
bt ebx, 0xb
jb 0x687b9d
mov r12, qword [r12 + 0xc8]
cmp qword [r12 + 0xa8], 0
je 0x687b9d
cmp byte [r12 + 0xda], 0
je 0x687b79
cmp dword [0x00a6ab70], 0
je 0x687b6b
mov r8, qword [r12 + 0xa8]
mov rbx, r11
nop
call fcn.004725e0
mov qword [r11], r8
mov r11, rbx
mov qword [r12 + 0xa8], 0
jmp 0x687b9d
mov r8, qword [0x00a15730]
mov r9, qword [0x00a15738]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
mov rdi, rax
mov rsi, rcx
add rsp, 0xb0
pop rbp
ret
mov r8, qword [rsp + 0x58]
cmp r8, r10
jle 0x687d59
lea r9, [rcx + 0x2d]
cmp rdx, r9
jb 0x687ebb
lea r10, [rcx + 0x21]
nop dword [rax]
cmp r9, r10
jb 0x687eb0
mov qword [rsp + 0x28], rcx
lea r9, [r11 - 0x21]
neg r9
sar r9, 0x3f
and r9, r10
nop dword [rax]
cmp r13, 0x14
jae 0x687c2a
mov qword [rsp + 0x48], r9
mov qword [rsp + 0x40], r11
mov ebx, 0x14
mov rcx, r13
mov edi, 0xc
lea rsi, [0x006b9d80]
call fcn.0046c060
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x58]
mov r9, qword [rsp + 0x48]
mov r11, qword [rsp + 0x40]
mov r15, qword [rsp + 0x80]
mov rbx, qword [r15 + r9]
mov esi, dword [r15 + r9 + 8]
mov qword [rax + 8], rbx
mov dword [rax + 0x10], esi
lea rbx, [rcx + 0x2e]
nop
cmp r8, rbx
jb 0x687ea5
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x70], rax
lea rax, [r11 - 0x2e]
sub r8, rcx
lea rdx, [r8 - 0x2e]
mov qword [rsp + 0x30], rdx
mov rsi, rax
neg rax
sar rax, 0x3f
and rax, rbx
add rax, r15
mov qword [rsp + 0x68], rax
mov qword [rsp], rax
mov qword [rsp + 8], rdx
mov qword [rsp + 0x10], rsi
mov byte [rsp + 0x18], 0
call fcn.00403a80
xorps xmm15, xmm15
mov r14, qword [0x00a6a920]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rcx, qword [rsp + 0x20]
cmp rcx, 0xffffffffffffffff
je 0x687ce7
mov rsi, qword [rsp + 0x28]
lea rsi, [rsi + rcx]
lea rsi, [rsi + 0x2e]
mov rdx, qword [rsp + 0x60]
nop
cmp rdx, rsi
jb 0x687e9b
mov rax, qword [rsp + 0x38]
cmp rsi, rax
jb 0x687e93
xor eax, eax
mov rbx, qword [rsp + 0x68]
nop
call fcn.0046c9c0
jmp 0x687cf8
xor eax, eax
mov rbx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x30]
call fcn.0046c9c0
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x80], rax
lea rax, [0x006c1c00]
call fcn.0040d9c0
mov rbx, qword [rsp + 0x70]
cmp rax, rbx
je 0x687d35
mov qword [rsp + 0xa8], rax
mov ecx, 0x14
call fcn.00473360
mov rax, qword [rsp + 0xa8]
mov ebx, 0x14
mov rcx, rbx
mov rdi, qword [rsp + 0x80]
mov rsi, qword [rsp + 0x60]
xor r8d, r8d
xor r9d, r9d
add rsp, 0xb0
pop rbp
ret
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x70], rax
lea rax, [0x006bd380]
call fcn.0040d9c0
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
je 0x687d8d
mov rdx, qword [rsp + 0x60]
mov r10, qword [rsp + 0x80]
mov rdx, qword [r10 + rdx]
mov qword [rax], rdx
mov ebx, 8
mov rcx, rbx
xor edi, edi
xor esi, esi
xor r8d, r8d
mov r9, rdi
add rsp, 0xb0
pop rbp
ret
mov r8, qword [0x00a15780]
mov r9, qword [0x00a15788]
xor eax, eax
xor ebx, ebx
mov rcx, rbx
mov rdi, rax
mov rsi, rcx
add rsp, 0xb0
pop rbp
ret
movups xmmword [rsp + 0x88], xmm15
movups xmmword [rsp + 0x98], xmm15
movzx edx, byte [rax]
lea r8, [0x006b9d80]
mov qword [rsp + 0x88], r8
lea r8, [0x009f4480]
lea rdx, [r8 + rdx*8]
mov qword [rsp + 0x90], rdx
lea rdx, [0x006b9f40]
mov qword [rsp + 0x98], rdx
lea rdx, [0x007a3d98]
mov qword [rsp + 0xa0], rdx
lea rax, [0x00734955]
mov ebx, 0x41
lea rcx, [rsp + 0x88]
mov edi, 2
mov rsi, rdi
nop dword [rax]
call fcn.00500f40
xor ecx, ecx
xor edi, edi
mov rsi, rcx
mov r8, rax
mov r9, rbx
mov rax, rdi
mov rbx, rcx
add rsp, 0xb0
pop rbp
ret
mov rdi, rcx
mov rcx, rbx
mov rbx, rax
mov rax, qword [rsp + 0xc0]
call fcn.00689880
xor ecx, ecx
xor edi, edi
mov rsi, rcx
mov r8, rax
mov r9, rbx
mov rax, rdi
mov rbx, rcx
add rsp, 0xb0
pop rbp
ret
mov rcx, rsi
call fcn.00472a60
mov rcx, rsi
nop
call fcn.00472a20
mov rax, rbx
mov rcx, r8
call fcn.00472a60
mov rax, r10
mov rcx, r9
call fcn.00472a60
mov rcx, r9
nop
call fcn.00472a20
mov rax, rbx
mov rcx, r10
call fcn.00472a60
mov rcx, r10
call fcn.00472a20
mov rcx, rax
mov rax, r10
nop
call fcn.00472a60
mov rcx, rax
call fcn.00472a20
xor eax, eax
mov rcx, rax
call fcn.004729a0
nop
mov qword [rsp + 8], rax
nop dword [rax]
call fcn.004706c0
mov rax, qword [rsp + 8]
jmp fcn.00687960