Function at 0x61644560
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 0x61644f08
cmp rcx, rax
jbe 0x616446b7
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 0x616446a0
mov rdi, qword [rsp + 0x90]
cmp qword [rsp + 0x80], rdi
jae 0x61644f42
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 0x61644e90
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 0x616447f3
test r14d, r14d
jne 0x61644808
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 0x61644910
cmp qword [rbx + 0x28], rbx
je 0x61644910
mov rbx, qword [rbx + 0x20]
cmp qword [rsp + 0x38], rbx
jne 0x616447b7
cmp byte [rsp + 0x47], 0
jne 0x61644dc0
mov byte [rsp + 0x47], 1
test r14d, r14d
je 0x616447bc
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 0x61644830
mov r9d, esi
mov ecx, r11d
cmp r11d, r8d
jle 0x6164483a
mov edi, esi
mov r8d, r11d
and esi, 3
jne 0x61644856
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 0x61644873
mov r14d, 1
cmp qword [rsp + 0x38], rbx
jne 0x616447b7
test r13, r13
je 0x61644886
mov r11, qword [r13 + 0x40]
cmp qword [r15 + 0x38], r11
je 0x61644aa0
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 0x616448c3
mov r11d, dword [rsp + 0x34]
sub r11d, r10d
cmp r11d, dword [rsp + 0x68]
jge 0x616448c3
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 0x616447b0
movsxd rax, dword [r12 + 0x38]
cmp eax, 0x3e8
jg 0x61644f34
movsx edi, bpl
mov rdx, qword [r12 + 0x40]
mov dword [rsp + 0xac], 0
mov dword [rsp + 0x40], edi
cmp eax, 0x11
jg 0x616449f0
test rdx, rdx
je 0x61644b40
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 0x61644a80
cmp rbx, rdx
je 0x61644b78
mov dword [rsp + 0x34], 0xffff8300
mov edi, r9d
mov r8d, ecx
mov edx, eax
mov r10d, 0x7d00
jmp 0x61644808
mov r8d, dword [r12 + 0x3c]
cmp eax, r8d
jl 0x6164494a
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 0x61644d08
mov qword [rsp + 0x20], rdx
mov rcx, qword [rsp + 0x88]
mov edx, 0x48
mov r9d, r15d
call fcn.616c6960
mov edx, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test edx, edx
jne 0x61644d39
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 0x6164495a
cmp rbx, rdx
je 0x61644bb0
mov dword [rsp + 0x34], ecx
mov r10d, ecx
mov edi, r9d
mov r8d, ecx
mov edx, eax
jmp 0x61644808
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 0x61644bc0
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 0x61644c58
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 0x616447b0
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 0x6164495a
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 0x616447e8
mov word [r15 + 2], ax
mov r10d, ecx
mov dword [rsp + 0x34], ecx
jmp 0x61644b8f
mov eax, dword [rsp + 0x54]
cmp ecx, eax
jle 0x61644bd0
movzx r9d, word [rsp + 0x64]
mov ecx, eax
mov eax, dword [rsp + 0x58]
cmp r8d, eax
jge 0x61644be1
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 0x61644c2e
mov edx, esi
sub edx, r10d
cmp edx, dword [rsp + 0x68]
jl 0x61644efa
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 0x61644b2c
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 0x61644c85
mov eax, dword [rsp + 0x34]
sub eax, r10d
cmp eax, dword [rsp + 0x68]
jge 0x61644c85
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 0x61644b2c
mov qword [rsp + 0x20], 0
mov edx, 0x48
mov r9d, r15d
xor r8d, r8d
mov rcx, qword [rsp + 0x88]
call fcn.616c6960
mov edx, dword [rsp + 0xac]
mov qword [r12 + 0x40], rax
test edx, edx
je 0x61644d53
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 0x61644d39
jmp 0x6164495a
add qword [rsp + 0x80], 8
mov rax, qword [rsp + 0x80]
cmp qword [rsp + 0x90], rax
ja 0x61644701
imul rax, qword [rsp + 0x98], 0x898
add rax, qword [rsp + 0x150]
mov rdx, qword [rax + 0x40]
test rdx, rdx
je 0x61644f42
movsxd rax, dword [rax + 0x38]
lea rax, [rax + rax*8]
lea r10, [rdx + rax*8]
cmp rdx, r10
jb 0x61644e4e
jmp 0x61644f42
cmp ecx, r8d
jle 0x61644e2e
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 0x61644e41
sub ecx, eax
sar ecx, 1
add word [rdx + 0xa], cx
add rdx, 0x48
cmp rdx, r10
jae 0x61644f42
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 0x61644e20
cmp ecx, r8d
jge 0x61644e7a
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 0x61644e41
sub eax, ecx
sar eax, 1
add word [rdx + 0xa], ax
jmp 0x61644e41
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 0x61644731
mov r8, qword [rsp + 0x38]
mov r9d, dword [rsp + 0x48]
nop dword [rax]
cmp r8, rdx
je 0x61644731
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 0x61644ec8
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0x38], rax
jmp 0x61644731
or eax, 1
jmp 0x61644c31
cmp rcx, rax
jbe 0x616446b7
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 0x61644f18
jmp 0x616446b7
mov dword [r12 + 0x38], 0
jmp 0x61644d3c
xor r14d, r14d
jmp 0x61644d3c