Function at 0x61d1f7b0
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, 0xf8
mov eax, dword [rsp + 0x168]
mov r12, qword [rcx]
mov qword [rsp + 0x158], r9
mov rbx, rcx
mov r15, rdx
mov dword [rsp + 0x68], eax
test al, al
jne 0x61d1f7f1
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x18], 0
je 0x61d20190
mov rax, qword [rsp + 0x158]
mov r14, qword [r15 + 0x20]
cmp byte [rax + 8], 0
je 0x61d1ff48
mov rax, qword [rsp + 0x158]
mov qword [rbx + 0x20], 0
movdqu xmm4, xmmword [rax + 0x20]
movdqu xmm0, xmmword [rax]
movdqu xmm2, xmmword [rax + 0x10]
movups xmmword [rsp + 0xc0], xmm0
movups xmmword [rsp + 0xd0], xmm2
movups xmmword [rsp + 0x40], xmm4
movups xmmword [rsp + 0xe0], xmm4
cmp qword [rax + 0x10], r14
jb 0x61d1f99a
cmp byte [r12 + 0x141], 0
jne 0x61d20080
test r14, r14
je 0x61d20350
lea rax, [rsp + 0xe0]
lea r13, [rsp + 0xa0]
mov edi, 0xffffff80
xor esi, esi
mov qword [rsp + 0x60], rax
mov rbp, rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
mov rax, r13
mov r13, rbx
mov rbx, rax
jmp 0x61d1f8c5
mov rax, rsi
shr dil, 1
and eax, 7
cmp rax, 7
jne 0x61d1f8b8
add rbp, 1
mov edi, 0xffffff80
add rsi, 1
cmp rsi, r14
je 0x61d1f9b0
test byte [rbp], dil
je 0x61d1f8a0
mov rcx, qword [rsp + 0x40]
mov r9, r12
mov r8, rsi
mov rdx, r15
mov dword [rsp + 0x30], 1
mov eax, dword [r13 + 0x1c]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x20], eax
call fcn.61d1f600
mov dword [rsp + 0x30], 0
mov eax, dword [r13 + 0x1c]
mov rdx, r15
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x20], eax
call fcn.61d1f600
mov r10d, dword [rsp + 0x80]
test r10b, 0x10
jne 0x61d1f943
mov eax, dword [rsp + 0xa0]
mov edx, eax
mov dword [rsp + 0x58], eax
and edx, 0x10
je 0x61d1fe60
mov rdx, qword [rsp + 0x40]
mov r8, rbx
mov rcx, r13
call fcn.61d20470
mov eax, edi
not eax
and byte [rbp], al
jmp 0x61d1f8a0
mov rax, qword [rax]
test rax, rax
je 0x61d1f988
mov r11d, dword [rax]
test r11d, r11d
jne 0x61d1f988
mov rdi, qword [rsp + 0x158]
mov dword [rax], 0x12
cmp byte [rdi + 8], 0
jne 0x61d1f807
cmp byte [r12 + 0xc], 0
je 0x61d1f99a
mov dword [rax], 0
mov byte [rbx + 0x19], 0
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rsp + 0x68], 0
mov rbx, r13
jne 0x61d1fa90
mov r10, qword [rsp + 0x60]
lea rsi, [rsp + 0xa0]
mov r13d, 0xffffff80
xor ebp, ebp
lea rdi, [rsp + 0x80]
mov rax, rsi
mov rsi, r10
mov r10, r14
mov r14, r15
mov r15, r12
mov r12, rdi
mov rdi, rbx
mov rbx, rax
jmp 0x61d1fa1e
mov rax, rbp
shr r13b, 1
and eax, 7
cmp rax, 7
jne 0x61d1fa11
add rsi, 1
mov r13d, 0xffffff80
add rbp, 1
cmp rbp, r10
je 0x61d1ffd0
test byte [rsi], r13b
je 0x61d1f9f8
mov r9, r15
mov r8, rbp
mov rdx, r14
mov rcx, r12
mov dword [rsp + 0x30], 1
mov eax, dword [rdi + 0x1c]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x20], eax
call fcn.61d1f600
mov dword [rsp + 0x30], 0
mov eax, dword [rdi + 0x1c]
mov rdx, r14
mov rcx, rbx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x160]
mov dword [rsp + 0x20], eax
call fcn.61d1f600
mov r8, rbx
mov rdx, r12
mov rcx, rdi
call fcn.61d20470
mov r10, qword [rsp + 0x40]
jmp 0x61d1f9f8
mov r8d, dword [r13 + 0x20]
test r8d, r8d
je 0x61d1fac8
mov edi, dword [rbx + 0x38]
test edi, edi
jg 0x61d1fac8
lea eax, [r8 - 1]
shl rax, 5
mov esi, dword [rbx + rax + 0x38]
test esi, esi
js 0x61d1fac8
mov rax, qword [rbx + 0x10]
mov qword [rax + 0x20], 0
jmp 0x61d1fb6e
mov eax, dword [rbx + 0x1c]
lea r8, [rsp + 0xa0]
lea rdx, [rsp + 0x80]
mov rcx, rbx
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x88], 0
mov dword [rsp + 0x98], eax
mov qword [rsp + 0x90], 0
mov dword [rsp + 0x80], 0x31
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
call fcn.61d20470
mov r8d, dword [rbx + 0x20]
mov rax, qword [rbx + 0x10]
mov qword [rax + 0x20], 0
test r8d, r8d
je 0x61d1fdce
mov qword [rsp + 0x148], r15
xor esi, esi
nop dword [rax + rax]
lea r12, [rsi + 1]
mov rbp, rsi
mov rcx, r12
shl rcx, 5
mov eax, dword [rbx + rcx + 8]
mov r14d, eax
and r14d, 0xc
je 0x61d1fba6
mov rbp, r12
add rcx, 0x20
lea r12, [rsi + 2]
and eax, 0x10
mov edi, eax
jne 0x61d1fce0
mov rax, rsi
mov edx, 0x10000
mov r11d, 0
mov r15d, 0
shl rax, 5
mov r13d, dword [rbx + rax + 0x3c]
mov rax, rbp
shl rax, 5
movzx r10d, r13w
mov r9d, dword [rbx + rax + 0x3c]
sub edx, r10d
test r10d, r10d
cmovne r11d, edx
movzx eax, r9w
mov edx, 0x10000
sub edx, eax
test eax, eax
cmove edx, r15d
cmp r11d, edx
cmovle edx, r11d
cmp r10d, eax
cmovle eax, r10d
sub r8d, 1
mov r10d, eax
neg r10d
cmp rbp, r8
jae 0x61d1fdf0
mov r11, r12
lea r8d, [r9 + rdx + 0x8000]
shl r11, 5
cmp dword [rbx + r11 + 0x3c], r8d
jge 0x61d1fdf0
test rsi, rsi
je 0x61d1fc57
mov r11, rsi
mov r8d, 0xffff8000
sub r8d, eax
shl r11, 5
add r8d, r13d
cmp dword [r11 + rbx + 0x1c], r8d
jg 0x61d20210
mov edi, r10d
cmp edx, eax
jge 0x61d1fc70
test byte [rbx + rcx + 0x28], 0x10
je 0x61d2021e
nop dword [rax]
mov rax, rsi
add r13d, edi
shl rax, 5
mov dword [rbx + rax + 0x3c], r13d
test r14d, r14d
je 0x61d1fe50
mov rdx, rbp
lea eax, [r9 + rdi]
shl rdx, 5
mov dword [rbx + rdx + 0x3c], eax
test rsi, rsi
jne 0x61d1fce5
mov rax, rbp
sub rbp, 1
shl rax, 5
shl rbp, 5
add rax, rbx
add rbp, rbx
mov edx, dword [rax + 0x38]
mov ecx, dword [rbp + 0x38]
cmp edx, ecx
je 0x61d1fccb
sub edx, ecx
mov ecx, dword [rax + 0x3c]
sub ecx, dword [rbp + 0x3c]
call fcn.61c68540
mov dword [rbp + 0x40], eax
mov eax, dword [rbx + 0x20]
mov r8, rax
cmp rax, r12
jbe 0x61d1fd21
mov rsi, r12
jmp 0x61d1fb80
test rsi, rsi
je 0x61d1fd11
lea rdi, [rsi - 1]
shl rsi, 5
shl rdi, 5
add rsi, rbx
add rdi, rbx
mov edx, dword [rsi + 0x38]
mov eax, dword [rdi + 0x38]
cmp edx, eax
je 0x61d1fd11
mov ecx, dword [rsi + 0x3c]
sub edx, eax
sub ecx, dword [rdi + 0x3c]
call fcn.61c68540
mov dword [rdi + 0x40], eax
test r14d, r14d
jne 0x61d1fc9c
mov eax, dword [rbx + 0x20]
mov r8, rax
cmp rax, r12
ja 0x61d1fcd6
mov r13, qword [rbx + 0x10]
mov r15, qword [rsp + 0x148]
mov rdi, qword [r13 + 0x20]
test rdi, rdi
je 0x61d1fdce
mov r12, qword [r13 + 0x10]
lea r9, [rdi - 1]
mov rbp, qword [r13 + 0x30]
mov r8, rdi
imul r9, r12
add r9, rbp
sub r8, 1
mov rdx, r9
cmp rdi, r8
ja 0x61d1fd80
mov rax, qword [r13 + 8]
mov rdx, rbp
test rax, rax
je 0x61d1fd80
mov r11d, dword [rax]
test r11d, r11d
jne 0x61d1fd80
mov dword [rax], 0x82
nop word cs:[rax + rax]
mov rcx, qword [rdx]
mov r10d, dword [rdx + 8]
mov rdx, rcx
lea rax, [rcx + 1]
shl rdx, 5
shl rax, 5
add rdx, rbx
add rax, rbx
mov r11d, dword [rdx + 0x3c]
add r11d, r10d
lea esi, [r11 + 0x8000]
cmp dword [rax + 0x3c], esi
jl 0x61d1fdc6
mov dword [rdx + 0x3c], r11d
test byte [rax + 8], 0xc
je 0x61d1fdc6
sub rcx, 1
shl rcx, 5
add dword [rbx + rcx + 0x3c], r10d
sub r9, r12
test r8, r8
jne 0x61d1fd50
cmp byte [rsp + 0x68], 0
je 0x61d20070
mov rax, qword [rsp + 0x158]
mov byte [rbx + 0x18], 1
mov byte [rax + 9], 0
jmp 0x61d1f99a
test rsi, rsi
je 0x61d1fe40
lea rdi, [rsi - 1]
mov ecx, 0xffff8000
mov r8, rdi
sub ecx, eax
shl r8, 5
add ecx, r13d
cmp dword [rbx + r8 + 0x3c], ecx
jle 0x61d1fe40
mov rax, rsi
add r13d, edx
shl rax, 5
mov dword [rbx + rax + 0x3c], r13d
test r14d, r14d
je 0x61d1fce9
mov rax, rbp
add edx, r9d
shl rax, 5
mov dword [rbx + rax + 0x3c], edx
jmp 0x61d1fce9
cmp edx, eax
mov edi, edx
cmovg edi, r10d
jmp 0x61d1fc70
test rsi, rsi
je 0x61d1fccb
jmp 0x61d1fce5
mov ecx, dword [r12 + 0x13c]
mov r8d, dword [r12 + 0x14c]
test ecx, ecx
je 0x61d1f8a0
mov r11d, eax
mov eax, dword [rsp + 0x90]
mov r9d, dword [rsp + 0xb0]
and r11d, 0xa
mov dword [rsp + 0x6c], eax
mov eax, r10d
mov dword [rsp + 0x78], r9d
and eax, 5
jne 0x61d200e8
test r11d, r11d
je 0x61d1f8a0
mov dword [rsp + 0x6c], r10d
lea rdx, [r12 + 0x198]
mov r11d, r9d
jmp 0x61d1fecf
add eax, 1
add rdx, 0x14
cmp ecx, eax
je 0x61d1f8a0
cmp byte [rdx + 0x10], 0
jne 0x61d1fec0
mov r9d, dword [rdx]
mov r10d, r9d
sub r10d, r8d
cmp r10d, r11d
jg 0x61d1fec0
mov r10d, dword [rdx + 4]
add r10d, r8d
cmp r11d, r10d
jg 0x61d1fec0
mov r10d, dword [rsp + 0x6c]
cmp byte [r12 + 0x140], 0
mov ecx, dword [rsp + 0xb4]
je 0x61d203f0
mov eax, eax
lea rax, [rax + rax*4]
mov r8d, dword [r12 + rax*4 + 0x1a4]
mov eax, r8d
sub eax, ecx
test r10d, r10d
jne 0x61d2045a
add eax, ecx
mov dword [rsp + 0xb4], eax
mov eax, dword [rsp + 0x58]
or eax, 0x10
mov dword [rsp + 0xa0], eax
jmp 0x61d1f943
mov rcx, qword [r8 + 0x20]
add rcx, r14
cmp rcx, 0x60
ja 0x61d1f960
mov qword [rax + 0x10], rcx
mov rdi, rax
lea rax, [rcx + 7]
mov r10d, 0x101
shr rax, 3
mov word [rdi + 8], r10w
mov qword [rdi + 0x18], rax
test rcx, rcx
je 0x61d1ffbd
test rax, rax
je 0x61d1ffa5
lea rdx, [rdi + 0x20]
mov r10, 0xffffffffffffffff
cmp eax, 8
jae 0x61d20280
test al, 4
jne 0x61d20430
test eax, eax
jne 0x61d20366
mov rdi, qword [rsp + 0x158]
neg ecx
mov edx, 0xffffffff
and ecx, 7
shl edx, cl
and byte [rdi + rax + 0x1f], dl
mov r14, qword [r15 + 0x20]
jmp 0x61d1f807
mov eax, dword [rdi + 0x20]
mov rbx, rdi
mov r15, r14
mov r8d, eax
mov rdx, qword [rbx + 0x10]
mov qword [rdx + 0x20], 0
test eax, eax
jne 0x61d1fb6e
test eax, eax
je 0x61d1fdd9
lea rdx, [rbx + 0x28]
xor ecx, ecx
jmp 0x61d2001a
mov dword [rax + 0x10], r9d
mov byte [rax], 1
mov eax, dword [rbx + 0x20]
mov r8d, eax
add rdx, 0x20
cmp r8, rcx
jbe 0x61d1fdd9
mov r8d, dword [rdx]
add rcx, 1
test r8b, 0x20
jne 0x61d2000a
mov rax, qword [rdx + 8]
cmp rax, qword [r15 + 0x20]
jb 0x61d20050
mov r9, qword [r15 + 8]
xor eax, eax
test r9, r9
je 0x61d20050
mov r10d, dword [r9]
test r10d, r10d
jne 0x61d20050
mov dword [r9], 0x82
mov r8d, dword [rdx]
nop
imul rax, qword [r15 + 0x10]
add rax, qword [r15 + 0x30]
and r8d, 0xa
mov r9d, dword [rdx + 0x14]
jne 0x61d20000
mov dword [rax + 0xc], r9d
jmp 0x61d20004
mov eax, dword [rbx + 0x20]
jmp 0x61d1fff0
lea r13, [rsp + 0xa0]
mov rcx, rbx
lea rdx, [r12 + 0x178]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov r8, r13
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
call fcn.61d20470
lea r8, [r12 + 0x158]
mov rdx, r13
mov rcx, rbx
call fcn.61d20470
jmp 0x61d1f85b
lea rax, [r12 + 0x198]
test r11d, r11d
jne 0x61d202d0
mov dword [rsp + 0x78], r10d
mov edx, dword [rsp + 0x6c]
jmp 0x61d20119
add r11d, 1
add rax, 0x14
cmp ecx, r11d
je 0x61d1f8a0
cmp byte [rax + 0x10], 0
je 0x61d20108
mov r9d, dword [rax]
sub r9d, r8d
cmp edx, r9d
jl 0x61d20108
mov r9d, dword [rax + 4]
lea r10d, [r9 + r8]
cmp edx, r10d
jg 0x61d20108
mov r10d, dword [rsp + 0x78]
cmp byte [r12 + 0x140], 0
mov edx, dword [rsp + 0x94]
je 0x61d203b8
lea rax, [r11 + r11*4]
mov eax, dword [r12 + rax*4 + 0x1a4]
sub eax, edx
add edx, eax
mov dword [rsp + 0x94], edx
mov edx, r10d
or edx, 0x10
mov dword [rsp + 0x80], edx
mov edx, dword [rsp + 0x58]
test edx, edx
je 0x61d1f943
mov ecx, dword [rsp + 0xb4]
jmp 0x61d1ff26
mov rax, qword [r9]
mov dword [rsp + 0x28], 1
lea r9, [rsp + 0xc0]
mov qword [rsp + 0x150], r8
mov qword [rsp + 0xc0], rax
mov eax, dword [rsp + 0x160]
mov qword [rsp + 0xc8], 0
mov dword [rsp + 0x20], eax
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0
mov qword [rsp + 0xe8], 0
call fcn.61d1f7b0
mov r8, qword [rsp + 0x150]
jmp 0x61d1f7f1
xor r10d, r10d
test byte [rbx + rcx + 0x28], 0x10
jne 0x61d1fc70
sub edx, r10d
mov r10, qword [rbx + 0x10]
mov qword [rsp + 0xa0], rbp
mov dword [rsp + 0xa8], edx
mov rcx, qword [r10 + 0x20]
cmp rcx, qword [r10 + 0x18]
je 0x61d20386
mov r8, qword [r10 + 0x10]
lea rdx, [rsp + 0xa0]
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x40], r10
imul rcx, r8
add rcx, qword [r10 + 0x30]
call sub.msvcrt.dll_memcpy
mov r10, qword [rsp + 0x40]
mov r9d, dword [rsp + 0x58]
add qword [r10 + 0x20], 1
jmp 0x61d1fc70
mov r8d, eax
mov qword [rdi + 0x20], 0xffffffffffffffff
mov qword [rdx + r8 - 8], 0xffffffffffffffff
mov rdi, qword [rsp + 0x158]
lea r9, [rdi + 0x28]
and r9, 0xfffffffffffffff8
sub rdx, r9
add edx, eax
and edx, 0xfffffff8
cmp edx, 8
jb 0x61d1ffa5
and edx, 0xfffffff8
xor r8d, r8d
mov r11d, r8d
add r8d, 8
mov qword [r9 + r11], r10
cmp r8d, edx
jb 0x61d202bb
jmp 0x61d1ffa5
mov qword [rsp + 0x70], rbp
mov r11d, dword [rsp + 0x6c]
mov dword [rsp + 0x7c], r10d
mov ebp, dword [rsp + 0x78]
jmp 0x61d2030c
sub r9d, r8d
cmp r9d, r11d
jg 0x61d20301
mov r9d, dword [rax + 4]
lea r10d, [r8 + r9]
cmp r11d, r10d
jle 0x61d20448
add edx, 1
add rax, 0x14
cmp edx, ecx
je 0x61d20340
cmp byte [rax + 0x10], 0
mov r9d, dword [rax]
jne 0x61d202e8
mov r10d, r9d
sub r10d, r8d
cmp r10d, ebp
jg 0x61d20301
mov r10d, dword [rax + 4]
add r10d, r8d
cmp ebp, r10d
jg 0x61d20301
mov rbp, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x7c]
mov eax, edx
jmp 0x61d1fef4
mov rbp, qword [rsp + 0x70]
jmp 0x61d1f8a0
mov eax, dword [rbx + 0x20]
cmp byte [rsp + 0x68], 0
mov r8d, eax
jne 0x61d1fa94
jmp 0x61d1ffdc
mov byte [rdi + 0x20], 0xff
test al, 2
je 0x61d1ffa5
mov r8d, eax
mov r9d, 0xffffffff
mov word [rdx + r8 - 2], r9w
jmp 0x61d1ffa5
lea rdx, [rcx + rcx + 0x10]
mov rcx, r10
mov dword [rsp + 0x40], r9d
mov qword [rsp + 0x58], r10
call fcn.61d1c210
mov r9d, dword [rsp + 0x40]
test al, al
je 0x61d1fc70
mov r10, qword [rsp + 0x58]
mov rcx, qword [r10 + 0x20]
jmp 0x61d20242
lea eax, [rdx + 0x8000]
sub r9d, dword [rsp + 0x6c]
xor ax, ax
cmp r9d, dword [r12 + 0x148]
jl 0x61d2015e
lea rcx, [r11 + r11*4]
mov ecx, dword [r12 + rcx*4 + 0x1a4]
sub ecx, 0x10000
cmp eax, ecx
cmovg eax, ecx
jmp 0x61d2015e
lea edx, [rcx + 0x8000]
xor dx, dx
mov r8d, edx
mov edx, dword [rsp + 0x78]
sub edx, r9d
cmp edx, dword [r12 + 0x148]
jl 0x61d1ff18
mov eax, eax
lea rax, [rax + rax*4]
mov eax, dword [r12 + rax*4 + 0x1a4]
add eax, 0x10000
cmp r8d, eax
cmovl r8d, eax
jmp 0x61d1ff18
mov r8d, eax
mov dword [rdi + 0x20], 0xffffffff
mov dword [rdx + r8 - 4], 0xffffffff
jmp 0x61d1ffa5
mov rbp, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x7c]
mov r11d, edx
jmp 0x61d2013c
mov edx, dword [rsp + 0x94]
jmp 0x61d20160