Function at 0x698dbcd0
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, 0x58
xor r14d, r14d
mov eax, dword [rcx + 0x50]
mov edi, dword [rcx + 0x4c]
mov ebp, dword [rcx + 0x48]
mov dword [rsp + 0xb0], r8d
mov rbx, rcx
mov r15, rdx
mov dword [rsp + 0x34], eax
test r8d, r8d
je 0x698dbd22
mov r14d, dword [rcx]
cmp r14d, 1
je 0x698dc030
cmp r14d, 2
je 0x698dbd48
test r14d, r14d
je 0x698dbe88
xor r14d, r14d
mov dword [rbx + 0x4c], edi
mov edi, dword [rsp + 0x34]
mov eax, r14d
mov dword [rbx + 0x48], ebp
mov dword [rbx + 0x50], edi
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r14d, r14d
mov esi, dword [rsp + 0xb0]
sub esi, r14d
test r15, r15
je 0x698dc1d0
and esi, 3
je 0x698dbdd1
cmp esi, 1
je 0x698dbd9a
cmp esi, 2
jne 0x698dc5b0
mov r9d, dword [rbx + 0x78]
test r9d, r9d
je 0x698dc3a0
mov rdx, qword [rbx + 0x70]
sub r9d, 1
mov r11d, r14d
add r14d, 1
mov dword [rbx + 0x78], r9d
movzx r10d, byte [rdx + r9]
mov byte [r15 + r11], r10b
mov r13d, dword [rbx + 0x78]
test r13d, r13d
je 0x698dc3a0
mov rsi, qword [rbx + 0x70]
sub r13d, 1
mov eax, r14d
add r14d, 1
mov dword [rbx + 0x78], r13d
movzx r12d, byte [rsi + r13]
mov byte [r15 + rax], r12b
cmp dword [rsp + 0xb0], r14d
je 0x698dbd22
mov r9d, dword [rsp + 0xb0]
mov r8d, dword [rbx + 0x78]
test r8d, r8d
je 0x698dc3a0
mov rcx, qword [rbx + 0x70]
sub r8d, 1
mov r10d, r14d
lea r11d, [r14 + 1]
mov dword [rbx + 0x78], r8d
mov r14d, r11d
movzx edx, byte [rcx + r8]
mov byte [r15 + r10], dl
mov r13d, dword [rbx + 0x78]
test r13d, r13d
je 0x698dc3a0
mov rsi, qword [rbx + 0x70]
sub r13d, 1
mov eax, r11d
add r14d, 1
mov dword [rbx + 0x78], r13d
movzx r12d, byte [rsi + r13]
mov byte [r15 + rax], r12b
mov ecx, dword [rbx + 0x78]
test ecx, ecx
je 0x698dc3a0
mov r8, qword [rbx + 0x70]
sub ecx, 1
mov dword [rbx + 0x78], ecx
movzx edx, byte [r8 + rcx]
mov byte [r15 + r14], dl
mov r10d, dword [rbx + 0x78]
lea r14d, [r11 + 2]
test r10d, r10d
je 0x698dc3a0
mov r13, qword [rbx + 0x70]
sub r10d, 1
mov dword [rbx + 0x78], r10d
movzx esi, byte [r13 + r10]
mov byte [r15 + r14], sil
lea r14d, [r11 + 3]
cmp r9d, r14d
jne 0x698dbdd9
jmp 0x698dbd22
mov rcx, qword [rcx + 0xc8]
mov edx, 2
call fcn.696b92f0
test eax, eax
jne 0x698dc390
mov rcx, qword [rbx + 0xc8]
lea rdx, [rsp + 0x4c]
mov r8d, 1
call fcn.696b9390
cmp eax, 1
jne 0x698dc390
movzx edx, byte [rsp + 0x4c]
mov ecx, edx
mov r8d, edx
and edx, 0xffffff80
and ecx, 0x1f
and r8d, 0x1f
movzx esi, dl
shl eax, cl
mov dword [rbx + 0x30], r8d
lea r9d, [rax - 0x100]
mov dword [rbx + 0x34], esi
mov dword [rbx + 0x38], r9d
cmp cl, 0x10
ja 0x698dc390
xor r10d, r10d
test esi, esi
mov edx, dword [rbx + 0x18]
movzx r11d, byte [rbx + 0x20]
setne r10b
mov dword [rbx + 0x3c], 9
mov dword [rbx + 0x40], r10d
cmp cl, 9
ja 0x698dc734
sub eax, 0xff
mov dword [rbx + 0x44], eax
test r11b, r11b
jne 0x698dc847
cmp dword [rbx + 0x1c], edx
jbe 0x698dc87b
cmp r10d, eax
jb 0x698dc75a
mov dword [rbx + 0x3c], 0xa
cmp cl, 0xa
jbe 0x698dc88b
mov dword [rbx + 0x44], 0x300
mov r13d, 3
mov r12d, 0xa
mov r9d, dword [rbx + 4]
test r9d, r9d
jne 0x698dc86e
mov r8d, dword [rbx + 0x3c]
mov rcx, qword [rbx + 0xc8]
lea rdx, [rbx + 8]
call fcn.696b9390
mov r11d, dword [rbx + 0x3c]
xor edx, edx
mov dword [rbx + 0x18], 0
mov r10d, eax
add qword [rbx + 0x28], r10
lea r8d, [rax*8]
cmp eax, r11d
setb dl
mov dword [rbx + 4], edx
cmp r11d, r8d
jae 0x698dc86a
sub r8d, r11d
add r8d, 1
mov dword [rbx + 0x1c], r8d
test eax, eax
je 0x698dc86e
movzx r10d, byte [rbx + 8]
mov dword [rbx + 0x18], r12d
mov r9d, 8
lea r12, [rbx + 9]
movzx eax, byte [r12]
mov ecx, r9d
and r13d, eax
shl r13d, cl
or r13d, r10d
mov esi, r13d
cmp esi, 0xff
ja 0x698dc86e
test r15, r15
je 0x698dbffd
mov byte [r15], r13b
cmp dword [rsp + 0xb0], 1
jbe 0x698dc89f
mov dword [rbx], 1
mov eax, dword [rbx + 0x40]
mov ebp, esi
mov edi, esi
mov dword [rsp + 0x34], 0
mov r14d, 1
jmp 0x698dc036
mov eax, dword [rcx + 0x40]
xor r14d, r14d
mov r10d, dword [rbx + 0x18]
movzx r8d, byte [rbx + 0x20]
lea r13, [rbx + 8]
mov edx, dword [rbx + 0x3c]
jmp 0x698dc0fb
cmp dword [rbx + 0x1c], r10d
jbe 0x698dc430
cmp eax, r11d
jae 0x698dc114
mov ecx, r10d
mov r11d, r10d
mov r9d, 8
add r10d, edx
shr ecx, 3
and r11d, 7
sub r9d, r11d
lea rax, [rcx + 8]
mov dword [rbx + 0x18], r10d
movzx esi, byte [rbx + rcx + 8]
add r12d, r11d
mov ecx, r11d
add rax, rbx
sar esi, cl
lea ecx, [r12 - 8]
cmp ecx, 7
ja 0x698dc3e0
lea r8, [rax + 1]
test ecx, ecx
je 0x698dc450
mov r12d, 0xffffffff
movzx eax, byte [r8]
shl r12d, cl
mov ecx, r9d
not r12d
and r12d, eax
shl r12d, cl
or esi, r12d
mov eax, esi
cmp eax, 0x100
jne 0x698dc362
mov r11d, dword [rbx + 0x34]
test r11d, r11d
je 0x698dc490
mov dword [rbx + 0x40], 0
xor eax, eax
xor ebp, ebp
xor edi, edi
mov byte [rbx + 0x20], 1
mov r8d, 1
mov r11d, dword [rbx + 0x44]
mov r12d, edx
test r8b, r8b
je 0x698dc050
cmp eax, r11d
jb 0x698dc410
lea r12d, [rdx + 1]
mov dword [rbx + 0x3c], r12d
cmp r12d, 0x10
ja 0x698dc390
cmp r12d, dword [rbx + 0x30]
jae 0x698dc440
mov edx, 1
mov ecx, r12d
shl edx, cl
sub edx, 0x100
mov dword [rbx + 0x44], edx
test r8b, r8b
jne 0x698dc410
mov r8d, dword [rbx + 4]
test r8d, r8d
jne 0x698dc390
mov rcx, qword [rbx + 0xc8]
mov rdx, r13
mov r8d, r12d
call fcn.696b9390
mov edx, dword [rbx + 0x3c]
xor r9d, r9d
mov dword [rbx + 0x18], 0
mov r10d, eax
add qword [rbx + 0x28], r10
lea esi, [rax*8]
cmp eax, edx
setb r9b
mov dword [rbx + 4], r9d
cmp edx, esi
jae 0x698dc72c
mov r11d, 1
sub r11d, edx
add r11d, esi
mov dword [rbx + 0x1c], r11d
test eax, eax
je 0x698dc390
mov r10d, r12d
mov eax, 8
mov r9d, 8
xor ecx, ecx
xor r11d, r11d
jmp 0x698dc080
and esi, 7
je 0x698dc2b0
cmp esi, 1
je 0x698dc28d
cmp esi, 2
je 0x698dc274
cmp esi, 3
je 0x698dc25f
cmp esi, 4
je 0x698dc24a
cmp esi, 5
je 0x698dc231
cmp esi, 6
je 0x698dc218
mov r9d, dword [rbx + 0x78]
test r9d, r9d
je 0x698dc3a0
sub r9d, 1
add r14d, 1
mov dword [rbx + 0x78], r9d
mov r11d, dword [rbx + 0x78]
test r11d, r11d
je 0x698dc3a0
sub r11d, 1
add r14d, 1
mov dword [rbx + 0x78], r11d
mov r12d, dword [rbx + 0x78]
test r12d, r12d
je 0x698dc3a0
sub r12d, 1
add r14d, 1
mov dword [rbx + 0x78], r12d
mov eax, dword [rbx + 0x78]
test eax, eax
je 0x698dc3a0
sub eax, 1
add r14d, 1
mov dword [rbx + 0x78], eax
mov ecx, dword [rbx + 0x78]
test ecx, ecx
je 0x698dc3a0
sub ecx, 1
add r14d, 1
mov dword [rbx + 0x78], ecx
mov r8d, dword [rbx + 0x78]
test r8d, r8d
je 0x698dc3a0
sub r8d, 1
add r14d, 1
mov dword [rbx + 0x78], r8d
mov edx, dword [rbx + 0x78]
test edx, edx
je 0x698dc3a0
sub edx, 1
add r14d, 1
mov dword [rbx + 0x78], edx
cmp dword [rsp + 0xb0], r14d
je 0x698dbd22
mov r10d, dword [rbx + 0x78]
test r10d, r10d
je 0x698dc3a0
lea r13d, [r10 - 1]
lea esi, [r14 + 1]
mov dword [rbx + 0x78], r13d
mov r14d, esi
test r13d, r13d
je 0x698dc3a0
lea r9d, [r10 - 2]
add r14d, 1
mov dword [rbx + 0x78], r9d
test r9d, r9d
je 0x698dc3a0
lea r11d, [r10 - 3]
lea r14d, [rsi + 2]
mov dword [rbx + 0x78], r11d
test r11d, r11d
je 0x698dc3a0
lea r12d, [r10 - 4]
lea r14d, [rsi + 3]
mov dword [rbx + 0x78], r12d
test r12d, r12d
je 0x698dc3a0
lea eax, [r10 - 5]
lea r14d, [rsi + 4]
mov dword [rbx + 0x78], eax
test eax, eax
je 0x698dc3a0
lea ecx, [r10 - 6]
lea r14d, [rsi + 5]
mov dword [rbx + 0x78], ecx
test ecx, ecx
je 0x698dc3a0
lea r8d, [r10 - 7]
lea r14d, [rsi + 6]
mov dword [rbx + 0x78], r8d
test r8d, r8d
je 0x698dc3a0
sub r10d, 8
lea r14d, [rsi + 7]
mov dword [rbx + 0x78], r10d
cmp dword [rsp + 0xb0], r14d
jne 0x698dc2b0
jmp 0x698dbd22
cmp esi, 0xff
jbe 0x698dc450
lea r13d, [rsi - 0x100]
cmp dword [rbx + 0x40], r13d
mov dword [rsp + 0x34], esi
ja 0x698dc4aa
jae 0x698dc650
nop dword [rax]
mov dword [rbx], 3
jmp 0x698dbd22
mov eax, dword [rbx + 0x40]
cmp eax, dword [rbx + 0x38]
jae 0x698dc3d0
mov r13d, dword [rbx + 0x68]
cmp eax, r13d
jae 0x698dc5e0
mov r12, qword [rbx + 0x58]
mov word [r12 + rax*2], bp
mov rbp, qword [rbx + 0x60]
mov byte [rbp + rax], dil
mov eax, dword [rbx + 0x40]
add eax, 1
mov dword [rbx + 0x40], eax
mov dword [rbx], 1
mov ebp, dword [rsp + 0x34]
jmp 0x698dc036
lea r8, [rax + 2]
movzx eax, byte [rax + 1]
mov ecx, r9d
mov r9d, 0x10
sub r9d, r11d
shl eax, cl
mov ecx, r12d
or eax, esi
mov esi, eax
sub ecx, 0x10
je 0x698dc0cc
jmp 0x698dc0ae
mov dword [rbx + 0x3c], 9
mov r12d, 9
mov dword [rbx + 0x44], 0x100
mov byte [rbx + 0x20], 0
jmp 0x698dc14c
cmp eax, r11d
jb 0x698dc14c
jmp 0x698dc114
mov edx, dword [rbx + 0x38]
add edx, 1
jmp 0x698dc140
mov dword [rsp + 0x34], esi
mov edi, esi
mov r11d, dword [rbx + 0x78]
mov rsi, qword [rbx + 0x80]
mov r10, qword [rbx + 0x70]
mov r13, r11
cmp r11, rsi
jae 0x698dc7b0
add r13d, 1
mov dword [rbx + 0x78], r13d
mov byte [r10 + r11], dil
mov dword [rbx], 2
jmp 0x698dbd4b
mov r8d, dword [rbx + 0x40]
mov dword [rsp + 0x34], 0x100
mov esi, 0x100
test r8d, r8d
je 0x698dc650
lea r12, [rsp + 0x4c]
mov qword [rsp + 0xa8], r15
mov r10, qword [rbx + 0x58]
lea r13, [rbx + 0x88]
mov qword [rsp + 0x38], r12
jmp 0x698dc500
mov r9, qword [rbx + 0x60]
lea esi, [rsi - 0x100]
add edx, 1
mov dword [rbx + 0x78], edx
add r9, rsi
movzx r15d, byte [r9]
mov byte [rax + r12], r15b
mov r10, qword [rbx + 0x58]
movzx esi, word [r10 + rsi*2]
cmp esi, 0xff
jbe 0x698dc71d
test r10, r10
je 0x698dc390
mov r12d, dword [rbx + 0x78]
mov r15, qword [rbx + 0x80]
mov rax, qword [rbx + 0x70]
mov rdx, r12
cmp r12, r15
jb 0x698dc4d0
mov rdx, r15
mov rcx, qword [rbx + 0xd0]
shr rdx, 1
lea r12, [r15 + rdx + 4]
cmp r13, rax
je 0x698dc690
mov r9d, r12d
cmp r12, 0x10000
jbe 0x698dc560
cmp r15, 0x10000
je 0x698dc390
mov r9d, 0x10000
mov r12d, 0x10000
mov r10, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
mov r8d, r15d
mov edx, 1
mov qword [rsp + 0x28], r10
call fcn.698dcc00
mov ecx, dword [rsp + 0x4c]
mov qword [rbx + 0x70], rax
test ecx, ecx
jne 0x698dc390
test r15, r15
je 0x698dc6dd
mov qword [rbx + 0x80], r12
mov r12d, dword [rbx + 0x78]
mov rdx, r12
jmp 0x698dc4d0
mov r12d, dword [rbx + 0x78]
test r12d, r12d
je 0x698dc3a0
mov rax, qword [rbx + 0x70]
sub r12d, 1
mov ecx, r14d
add r14d, 1
mov dword [rbx + 0x78], r12d
movzx r8d, byte [rax + r12]
mov byte [r15 + rcx], r8b
jmp 0x698dbd71
mov rcx, qword [rbx + 0xd0]
test r13d, r13d
je 0x698dc70d
mov esi, r13d
shr esi, 2
add esi, r13d
mov r9d, esi
mov r10, qword [rbx + 0x58]
lea rdx, [rsp + 0x4c]
mov r8d, r13d
mov qword [rsp + 0x28], rdx
mov edx, 3
mov qword [rsp + 0x20], r10
call fcn.698dccd0
mov r9d, dword [rsp + 0x4c]
mov qword [rbx + 0x58], rax
test r9d, r9d
jne 0x698dc390
mov r11d, esi
mov r8d, r13d
lea rcx, [rax + r11*2]
lea rdx, [rax + r8*2]
mov qword [rbx + 0x60], rcx
call sub.msvcrt.dll_memmove
mov dword [rbx + 0x68], esi
mov eax, dword [rbx + 0x40]
jmp 0x698dc3b5
mov r8d, dword [rbx + 0x78]
mov rsi, qword [rbx + 0x80]
mov r11, qword [rbx + 0x70]
mov r9, r8
cmp r8, rsi
jae 0x698dc93f
add r9d, 1
mov dword [rbx + 0x78], r9d
mov byte [r11 + r8], dil
cmp ebp, 0xff
jbe 0x698dc9c9
mov esi, ebp
jmp 0x698dc4aa
mov r11, qword [rsp + 0x38]
cmp r12, 0x10000
mov eax, 0x10000
mov qword [rbx + 0x70], 0
cmova r12, rax
mov edx, 1
xor r8d, r8d
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], r11
mov r9d, r12d
call fcn.698dcc00
mov r8d, dword [rsp + 0x4c]
mov qword [rbx + 0x70], rax
test r8d, r8d
jne 0x698dc390
movdqu xmm2, xmmword [r13]
movups xmmword [rax], xmm2
movdqu xmm3, xmmword [r13 + 0x10]
movups xmmword [rax + 0x10], xmm3
movdqu xmm4, xmmword [r13 + 0x20]
movups xmmword [rax + 0x20], xmm4
movdqu xmm5, xmmword [r13 + 0x30]
movups xmmword [rax + 0x30], xmm5
mov rax, qword [rbx + 0x70]
jmp 0x698dc595
mov r9d, 0x200
mov esi, 0x200
jmp 0x698dc5fc
mov r15, qword [rsp + 0xa8]
mov edi, esi
jmp 0x698dc456
mov dword [rbx + 0x1c], esi
jmp 0x698dc390
mov dword [rbx + 0x44], 0x100
test r11b, r11b
jne 0x698dc847
cmp dword [rbx + 0x1c], edx
ja 0x698dc75a
mov r13d, 1
mov r12d, 9
jmp 0x698dbf60
mov ecx, edx
lea eax, [rdx + 9]
and edx, 7
mov r9d, 8
shr ecx, 3
mov dword [rbx + 0x18], eax
sub r9d, edx
movzx r8d, byte [rbx + rcx + 8]
lea r12, [rbx + rcx + 8]
mov ecx, edx
sar r8d, cl
lea ecx, [rdx + 1]
mov r10d, r8d
cmp edx, 7
jne 0x698dca53
movzx r13d, byte [r12 + 1]
mov ecx, r9d
shl r13d, cl
or r13d, r8d
mov esi, r13d
jmp 0x698dbfe9
mov r13, rsi
mov r11, qword [rbx + 0xd0]
shr r13, 1
lea r12, [rsi + r13 + 4]
lea r13, [rbx + 0x88]
cmp r13, r10
je 0x698dc8b6
mov r9d, r12d
cmp r12, 0x10000
jbe 0x698dc7f7
cmp rsi, 0x10000
je 0x698dc390
mov r9d, 0x10000
mov r12d, 0x10000
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x20], r10
mov r8d, esi
mov rcx, r11
mov qword [rsp + 0x28], rax
mov edx, 1
call fcn.698dcc00
mov r8d, dword [rsp + 0x4c]
mov qword [rbx + 0x70], rax
mov r10, rax
test r8d, r8d
jne 0x698dc390
test rsi, rsi
je 0x698dc909
mov r11d, dword [rbx + 0x78]
mov qword [rbx + 0x80], r12
mov r13, r11
jmp 0x698dc471
mov byte [rbx + 0x20], 0
mov r13d, 1
mov r12d, 9
mov dword [rbx + 0x3c], 9
mov dword [rbx + 0x44], 0x100
jmp 0x698dbf60
mov dword [rbx + 0x1c], r8d
mov dword [rsp + 0x34], 0
jmp 0x698dc390
cmp r10d, eax
jb 0x698dc749
mov dword [rbx + 0x3c], 0xa
mov dword [rbx + 0x44], eax
mov r13d, 3
mov r12d, 0xa
jmp 0x698dbf60
mov dword [rsp + 0x34], 0
mov ebp, esi
mov edi, esi
mov r14d, 1
jmp 0x698dbd22
cmp r12, 0x10000
mov ecx, 0x10000
lea rdx, [rsp + 0x4c]
mov qword [rbx + 0x70], 0
cmova r12, rcx
xor r8d, r8d
mov rcx, r11
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], 0
mov edx, 1
mov r9d, r12d
call fcn.698dcc00
mov r9d, dword [rsp + 0x4c]
mov qword [rbx + 0x70], rax
mov r10, rax
test r9d, r9d
jne 0x698dc390
movdqu xmm0, xmmword [rbx + 0x88]
movups xmmword [r10], xmm0
movdqu xmm1, xmmword [r13 + 0x10]
movups xmmword [r10 + 0x10], xmm1
movdqu xmm2, xmmword [r13 + 0x20]
movups xmmword [r10 + 0x20], xmm2
movdqu xmm3, xmmword [r13 + 0x30]
movups xmmword [r10 + 0x30], xmm3
mov r10, qword [rbx + 0x70]
jmp 0x698dc834
mov r9, rsi
lea r13, [rbx + 0x88]
mov rcx, qword [rbx + 0xd0]
shr r9, 1
lea r12, [rsi + r9 + 4]
cmp r13, r11
je 0x698dc9d0
mov r9d, r12d
cmp r12, 0x10000
jbe 0x698dc982
cmp rsi, 0x10000
je 0x698dc390
mov r9d, 0x10000
mov r12d, 0x10000
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x20], r11
mov r8d, esi
mov edx, 1
mov qword [rsp + 0x28], rax
call fcn.698dcc00
mov ecx, dword [rsp + 0x4c]
mov qword [rbx + 0x70], rax
mov r11, rax
test ecx, ecx
jne 0x698dc390
test rsi, rsi
je 0x698dca1d
mov r8d, dword [rbx + 0x78]
mov qword [rbx + 0x80], r12
mov r9, r8
jmp 0x698dc66b
mov edi, ebp
jmp 0x698dc456
cmp r12, 0x10000
mov edx, 0x10000
lea r10, [rsp + 0x4c]
mov qword [rbx + 0x70], 0
cmova r12, rdx
mov qword [rsp + 0x28], r10
xor r8d, r8d
mov edx, 1
mov qword [rsp + 0x20], 0
mov r9d, r12d
call fcn.698dcc00
cmp dword [rsp + 0x4c], 0
mov qword [rbx + 0x70], rax
mov r11, rax
jne 0x698dc390
movdqu xmm4, xmmword [rbx + 0x88]
movups xmmword [r11], xmm4
movdqu xmm5, xmmword [r13 + 0x10]
movups xmmword [r11 + 0x10], xmm5
movdqu xmm0, xmmword [r13 + 0x20]
movups xmmword [r11 + 0x20], xmm0
movdqu xmm1, xmmword [r13 + 0x30]
movups xmmword [r11 + 0x30], xmm1
mov r11, qword [rbx + 0x70]
jmp 0x698dc9b6
or esi, 0xffffffff
add r12, 1
shl esi, cl
not esi
mov r13d, esi
jmp 0x698dbfd5