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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
mov rax, qword [rcx]
mov rdi, qword [rcx + 0x30]
mov qword [rsp + 0x88], rax
movsxd rax, dword [rcx + 0x2c]
mov qword [rsp + 0x150], rcx
lea rax, [rdi + rax*8]
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x90], rax
mov rax, qword [rcx + 0x1170]
mov ecx, 0x92492493
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xb0], 0
mov eax, dword [rax + 0x38]
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
shr eax, 1
mov qword [rsp + 0xc8], 0
imul rax, rcx
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe8], 0
shr rax, 0x22
mov qword [rsp + 0x68], rax
mov eax, edx
mov qword [rsp + 0x98], rax
imul rax, rax, 0x898
add rax, qword [rsp + 0x150]
mov ecx, dword [rax + 0x58]
mov edi, dword [rax + 0x58]
mov dword [rax + 0x38], 0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0xf0], 0
mov dword [rsp + 0xe0], 0x7d00
sar ecx, 0x1f
xor edi, ecx
mov rax, qword [rax + 0x20]
sub edi, ecx
mov dword [rsp + 0x48], edi
mov rdi, qword [rsp + 0x150]
movsxd rcx, dword [rdi + 0x1c]
lea rcx, [rcx + rcx*2]
shl rcx, 4
add rcx, rax
test edx, edx
jne 0x68215f88
cmp rcx, rax
jbe 0x68215737
nop dword [rax + rax]
movsx edx, word [rax + 0xc]
add rax, 0x30
mov dword [rax - 0x18], edx
movsx edx, word [rax - 0x22]
mov dword [rax - 0x14], edx
cmp rax, rcx
jb 0x68215720
mov rdi, qword [rsp + 0x90]
cmp qword [rsp + 0x80], rdi
jae 0x68215fc2
imul rax, qword [rsp + 0x98], 0x898
mov rdi, qword [rsp + 0x150]
xor r15d, r15d
lea rdi, [rdi + rax + 0x60]
add rax, qword [rsp + 0x150]
mov qword [rsp + 0x78], rdi
mov edi, dword [rsp + 0x48]
mov r12, rax
mov dword [rsp + 0x40], edi
mov rax, qword [rsp + 0x80]
mov rax, qword [rax]
mov rdx, qword [rax + 0x28]
mov qword [rsp + 0x38], rax
movzx ecx, byte [rdx + 3]
movzx eax, byte [rdx + 3]
sar cl, 7
xor eax, ecx
sub eax, ecx
movzx eax, al
cmp eax, dword [rsp + 0x48]
je 0x68215f10
mov byte [rsp + 0x47], 0
xor r9d, r9d
xor r10d, r10d
mov rbx, qword [rsp + 0x38]
mov dword [rsp + 0x60], 0xffff8300
xor r13d, r13d
xor edi, edi
xor r14d, r14d
mov dword [rsp + 0x5c], 0x7d00
mov r8d, 0xffff8300
mov ecx, 0x7d00
mov edx, 0xffff8300
mov dword [rsp + 0x58], 0xffff8300
mov eax, 0x7d00
mov dword [rsp + 0x54], 0x7d00
mov dword [rsp + 0x50], 0xffff8300
mov dword [rsp + 0x4c], 0x7d00
mov dword [rsp + 0x34], 0xffff8300
mov word [rsp + 0x66], r9w
xor r9d, r9d
mov word [rsp + 0x64], r10w
mov r10d, 0x7d00
nop dword [rax + rax]
cmp qword [rsp + 0x38], rbx
je 0x68215873
test r14d, r14d
jne 0x68215888
movzx ebp, byte [rbx + 3]
mov esi, ebp
sar sil, 7
mov r11d, esi
xor r11d, ebp
sub r11d, esi
movzx r11d, r11b
cmp r11d, dword [rsp + 0x48]
je 0x68215990
cmp qword [rbx + 0x28], rbx
je 0x68215990
mov rbx, qword [rbx + 0x20]
cmp qword [rsp + 0x38], rbx
jne 0x68215837
cmp byte [rsp + 0x47], 0
jne 0x68215e40
mov byte [rsp + 0x47], 1
test r14d, r14d
je 0x6821583c
mov rbx, qword [rbx + 0x20]
mov r11d, dword [rbx + 0x18]
movzx esi, word [rbx]
cmp eax, r11d
cmovg eax, r11d
cmp edx, r11d
cmovl edx, r11d
mov r11d, dword [rbx + 0x1c]
cmp r11d, ecx
jge 0x682158b0
mov r9d, esi
mov ecx, r11d
cmp r11d, r8d
jle 0x682158ba
mov edi, esi
mov r8d, r11d
and esi, 3
jne 0x682158d6
mov esi, dword [rsp + 0x34]
cmp r10d, r11d
cmovg r10d, r11d
cmp esi, r11d
cmovge r11d, esi
mov dword [rsp + 0x34], r11d
movsx r11d, byte [rbx + 3]
cmp r11d, dword [rsp + 0x40]
jne 0x682158f3
mov r14d, 1
cmp qword [rsp + 0x38], rbx
jne 0x68215837
test r13, r13
je 0x68215906
mov r11, qword [r13 + 0x40]
cmp qword [r15 + 0x38], r11
je 0x68215b20
lea r11d, [rdx + rax]
mov qword [r15 + 0x40], rbx
sar r11d, 1
mov word [r15 + 2], r11w
mov r11d, edx
sub r11d, eax
sar r11d, 1
mov word [r15 + 4], r11w
mov r11d, r9d
or r11d, edi
and r11d, 3
je 0x68215943
mov r11d, dword [rsp + 0x34]
sub r11d, r10d
cmp r11d, dword [rsp + 0x68]
jge 0x68215943
or byte [r15], 1
mov esi, dword [rsp + 0x34]
mov r11d, r8d
mov word [r15 + 6], cx
mov r13, r15
sub r11d, ecx
mov word [r15 + 8], r8w
xor r14d, r14d
mov word [r15 + 0xa], r11w
xor r15d, r15d
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x5c], r10d
mov word [rsp + 0x66], di
mov word [rsp + 0x64], r9w
mov dword [rsp + 0x58], r8d
mov dword [rsp + 0x54], ecx
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x4c], eax
jmp 0x68215830
movsxd rax, dword [r12 + 0x38]
cmp eax, 0x3e8
jg 0x68215fb4
movsx edi, bpl
mov rdx, qword [r12 + 0x40]
mov dword [rsp + 0xac], 0
mov dword [rsp + 0x40], edi
cmp eax, 0x11
jg 0x68215a70
test rdx, rdx
je 0x68215bc0
lea ecx, [rax + 1]
lea rax, [rax + rax*8]
mov dword [r12 + 0x38], ecx
lea r15, [rdx + rax*8]
movdqu xmm1, xmmword [rsp + 0xb0]
lea rax, [r15 - 0x48]
test r13, r13
movdqu xmm2, xmmword [rsp + 0xc0]
movdqu xmm3, xmmword [rsp + 0xd0]
movq xmm0, rbx
cmovne r13, rax
movdqu xmm4, xmmword [rsp + 0xe0]
movups xmmword [r15], xmm1
punpcklqdq xmm0, xmm0
mov byte [r15 + 1], bpl
movzx r9d, word [rbx]
movups xmmword [r15 + 0x30], xmm4
mov eax, dword [rbx + 0x18]
mov ecx, dword [rbx + 0x1c]
movups xmmword [r15 + 0x38], xmm0
mov rdx, qword [rbx + 0x28]
movups xmmword [r15 + 0x10], xmm2
movups xmmword [r15 + 0x20], xmm3
test r9b, 3
je 0x68215b00
cmp rbx, rdx
je 0x68215bf8
mov dword [rsp + 0x34], 0xffff8300
mov edi, r9d
mov r8d, ecx
mov edx, eax
mov r10d, 0x7d00
jmp 0x68215888
mov r8d, dword [r12 + 0x3c]
cmp eax, r8d
jl 0x682159ca
mov eax, r8d
sar eax, 2
lea r15d, [r8 + rax + 4]
mov eax, 0x1c71c71
cmp r8d, r15d
cmovg r15d, eax
lea rax, [rsp + 0xac]
cmp rdx, qword [rsp + 0x78]
mov qword [rsp + 0x28], rax
je 0x68215d88
mov qword [rsp + 0x20], rdx
mov rcx, qword [rsp + 0x88]
mov edx, 0x48
mov r9d, r15d
call fcn.682979e0
mov edx, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test edx, edx
jne 0x68215db9
mov dword [r12 + 0x3c], r15d
movsxd r15, dword [r12 + 0x38]
lea edx, [r15 + 1]
mov dword [r12 + 0x38], edx
imul r15, r15, 0x48
add r15, qword [r12 + 0x40]
jmp 0x682159da
cmp rbx, rdx
je 0x68215c30
mov dword [rsp + 0x34], ecx
mov r10d, ecx
mov edi, r9d
mov r8d, ecx
mov edx, eax
jmp 0x68215888
mov esi, dword [rsp + 0x50]
mov r14d, dword [rsp + 0x4c]
cmp edx, esi
cmovge esi, edx
cmp eax, r14d
cmovle r14d, eax
mov dword [rsp + 0x70], esi
lea ebp, [r14 + rsi]
sub esi, r14d
sar esi, 1
sar ebp, 1
mov dword [rsp + 0x74], esi
movzx esi, byte [rbx + 2]
cmp byte [r11 + 2], sil
je 0x68215c40
mov esi, dword [rsp + 0x58]
sub esi, dword [rsp + 0x54]
mov r11d, esi
sar r11d, 0x1f
xor esi, r11d
sub esi, r11d
mov r11d, r8d
sub r11d, ecx
mov dword [rsp + 0x4c], esi
mov esi, r11d
sar esi, 0x1f
xor r11d, esi
sub r11d, esi
cmp dword [rsp + 0x4c], r11d
jle 0x68215cd8
movzx esi, word [rsp + 0x74]
mov qword [r13 + 0x40], rbx
mov word [r13 + 2], bp
mov word [r13 + 4], si
mov esi, dword [rsp + 0x70]
mov dword [rsp + 0x4c], r14d
mov dword [rsp + 0x50], esi
sub dword [r12 + 0x38], 1
xor r15d, r15d
xor r14d, r14d
jmp 0x68215830
mov dword [r12 + 0x3c], 0x12
mov rax, qword [rsp + 0x78]
mov qword [r12 + 0x40], rax
movsxd rax, dword [r12 + 0x38]
mov r8, qword [r12 + 0x40]
lea edx, [rax + 1]
lea r15, [rax + rax*8]
mov dword [r12 + 0x38], edx
lea r15, [r8 + r15*8]
jmp 0x682159da
or byte [r15], 1
mov r10d, 0x7d00
mov word [r15 + 2], ax
mov dword [rsp + 0x34], 0xffff8300
xor edx, edx
mov word [r15 + 6], cx
mov edi, r9d
mov r8d, ecx
mov word [r15 + 0xa], dx
mov edx, eax
mov word [r15 + 8], cx
xor r15d, r15d
jmp 0x68215868
mov word [r15 + 2], ax
mov r10d, ecx
mov dword [rsp + 0x34], ecx
jmp 0x68215c0f
mov eax, dword [rsp + 0x54]
cmp ecx, eax
jle 0x68215c50
movzx r9d, word [rsp + 0x64]
mov ecx, eax
mov eax, dword [rsp + 0x58]
cmp r8d, eax
jge 0x68215c61
movzx edi, word [rsp + 0x66]
mov r8d, eax
mov eax, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x34]
mov edx, r9d
mov qword [r13 + 0x40], rbx
mov word [r13 + 2], bp
cmp r10d, eax
cmovg r10d, eax
mov eax, dword [rsp + 0x60]
cmp esi, eax
cmovl esi, eax
movzx eax, word [rsp + 0x74]
or edx, edi
and edx, 3
mov word [r13 + 4], ax
movzx eax, byte [r13]
mov dword [rsp + 0x34], esi
je 0x68215cae
mov edx, esi
sub edx, r10d
cmp edx, dword [rsp + 0x68]
jl 0x68215f7a
and eax, 0xfffffffe
mov byte [r13], al
mov eax, r8d
mov edx, dword [rsp + 0x70]
sub eax, ecx
mov word [r13 + 6], cx
mov word [r13 + 0xa], ax
mov eax, r14d
mov word [r13 + 8], r8w
jmp 0x68215bac
movzx eax, word [rsp + 0x74]
mov qword [r15 + 0x40], rbx
mov word [r15 + 2], bp
mov word [r15 + 4], ax
mov eax, r9d
or eax, edi
test al, 3
je 0x68215d05
mov eax, dword [rsp + 0x34]
sub eax, r10d
cmp eax, dword [rsp + 0x68]
jge 0x68215d05
or byte [r15], 1
mov eax, r8d
mov word [r15 + 6], cx
mov edx, dword [rsp + 0x70]
sub eax, ecx
mov word [r15 + 8], r8w
mov word [r15 + 0xa], ax
movdqu xmm5, xmmword [r15]
mov dword [rsp + 0x5c], r10d
movups xmmword [r13], xmm5
movdqu xmm5, xmmword [r15 + 0x10]
mov word [rsp + 0x66], di
movups xmmword [r13 + 0x10], xmm5
movdqu xmm5, xmmword [r15 + 0x20]
mov word [rsp + 0x64], r9w
movups xmmword [r13 + 0x20], xmm5
movdqu xmm5, xmmword [r15 + 0x30]
mov dword [rsp + 0x58], r8d
movups xmmword [r13 + 0x30], xmm5
mov rax, qword [r15 + 0x40]
mov dword [rsp + 0x54], ecx
mov qword [r13 + 0x40], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x60], eax
mov eax, r14d
mov dword [rsp + 0x4c], r14d
jmp 0x68215bac
mov qword [rsp + 0x20], 0
mov edx, 0x48
mov r9d, r15d
xor r8d, r8d
mov rcx, qword [rsp + 0x88]
call fcn.682979e0
mov edx, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test edx, edx
je 0x68215dd3
mov r14d, edx
mov eax, r14d
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x78]
lea rdi, [rax + 8]
and rdi, 0xfffffffffffffff8
mov rdx, qword [rcx]
mov qword [rax], rdx
mov rdx, qword [rcx + 0x508]
mov qword [rax + 0x508], rdx
sub rax, rdi
sub rcx, rax
add eax, 0x510
shr eax, 3
mov rsi, rcx
mov ecx, eax
rep movsq qword [rdi], qword [rsi]
mov dword [r12 + 0x3c], r15d
movsxd rax, dword [r12 + 0x38]
mov edx, dword [rsp + 0xac]
lea ecx, [rax + 1]
lea r15, [rax + rax*8]
mov dword [r12 + 0x38], ecx
mov rcx, qword [r12 + 0x40]
lea r15, [rcx + r15*8]
test edx, edx
jne 0x68215db9
jmp 0x682159da
add qword [rsp + 0x80], 8
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x90], rax
ja 0x68215781
imul rax, qword [rsp + 0x98], 0x898
add rax, qword [rsp + 0x150]
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x68215fc2
movsxd rax, dword [rax + 0x38]
lea rax, [rax + rax*8]
lea r10, [rdx + rax*8]
cmp rdx, r10
jb 0x68215ece
jmp 0x68215fc2
cmp ecx, r8d
jle 0x68215eae
sub ecx, r8d
sar ecx, 1
add word [rdx + 0xa], cx
mov rcx, qword [r9 + 0x20]
mov ecx, dword [rcx + 0x1c]
cmp ecx, eax
jle 0x68215ec1
sub ecx, eax
sar ecx, 1
add word [rdx + 0xa], cx
add rdx, 0x48
cmp rdx, r10
jae 0x68215fc2
mov r8, qword [rdx + 0x38]
mov r9, qword [rdx + 0x40]
mov ecx, dword [r8 + 0x1c]
mov eax, dword [r9 + 0x1c]
mov r8, qword [r8 + 0x28]
mov r8d, dword [r8 + 0x1c]
cmp ecx, eax
jl 0x68215ea0
cmp ecx, r8d
jge 0x68215efa
sub r8d, ecx
sar r8d, 1
add word [rdx + 0xa], r8w
mov rcx, qword [r9 + 0x20]
mov ecx, dword [rcx + 0x1c]
cmp ecx, eax
jge 0x68215ec1
sub eax, ecx
sar eax, 1
add word [rdx + 0xa], ax
jmp 0x68215ec1
mov rax, qword [rsp + 0x38]
movzx edi, byte [rax + 3]
mov ecx, edi
mov byte [rsp + 0x34], dil
movzx edi, byte [rax + 3]
sar cl, 7
xor edi, ecx
mov eax, edi
sub eax, ecx
movzx eax, al
cmp eax, dword [rsp + 0x48]
jne 0x682157b1
mov r8, qword [rsp + 0x38]
mov r9d, dword [rsp + 0x48]
nop dword [rax]
cmp r8, rdx
je 0x682157b1
mov rdx, qword [rdx + 0x28]
movzx ecx, byte [rdx + 3]
movzx eax, byte [rdx + 3]
sar cl, 7
xor eax, ecx
sub eax, ecx
movzx eax, al
cmp eax, r9d
je 0x68215f48
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x38], rax
jmp 0x682157b1
or eax, 1
jmp 0x68215cb1
cmp rcx, rax
jbe 0x68215737
nop dword [rax]
movsx edx, word [rax + 0xe]
add rax, 0x30
mov dword [rax - 0x18], edx
movsx edx, word [rax - 0x24]
mov dword [rax - 0x14], edx
cmp rax, rcx
jb 0x68215f98
jmp 0x68215737
mov dword [r12 + 0x38], 0
jmp 0x68215dbc
xor r14d, r14d
jmp 0x68215dbc