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

Disassembly:
lea r12, [rsp - 0x78]
cmp r12, qword [r14 + 0x10]
jbe 0x606d94
push rbp
mov rbp, rsp
sub rsp, 0xf0
mov qword [rsp + 0x108], rbx
mov edx, dword [rax + 0x10]
cmp rcx, 0x18
jl 0x606575
mov qword [rsp + 0x100], rax
mov byte [rsp + 0x120], sil
mov byte [rsp + 0x121], r8b
mov dword [rsp + 0x60], edx
xor r9d, r9d
xor r10d, r10d
xor r11d, r11d
xor r12d, r12d
jmp 0x6065e5
mov rax, 0xffffffffffffffff
add rsp, 0xf0
pop rbp
ret
mov rdi, qword [rsp + 0x90]
sub rdi, rsi
mov r13, qword [rsp + 0x88]
sub r13, rsi
add rdi, 0xffffffffffffffe8
mov r15, rdi
neg r15
sar r15, 0x3f
and rsi, r15
mov r10, qword [rsp + 0x98]
inc r10
mov r15, qword [rsp + 0xa8]
lea rbx, [rsi + r15]
add r13, 0xffffffffffffffe8
mov edx, dword [rsp + 0x60]
movzx esi, byte [rsp + 0x120]
movzx r8d, byte [rsp + 0x121]
mov rcx, r13
movzx r12d, byte [rsp + 0x4f]
mov byte [rsp + 0x4f], r12b
mov dword [rsp + 0x6c], r11d
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x64], 0
mov dword [rsp + 0x68], 0
mov dword [rsp + 0x54], 0
mov dword [rsp + 0x70], 0
mov word [rsp + 0x52], 0
mov byte [rsp + 0x51], 0
mov byte [rsp + 0x50], 0
cmp rcx, 0x18
jl 0x606b3f
mov r13d, dword [rbx]
nop
mov dword [rsp + 0x70], r13d
nop dword [rax + rax]
cmp dword [rax], r13d
jne 0x606b2f
lea r13, [rcx - 4]
nop
test r13, r13
jbe 0x606d89
movzx r13d, byte [rbx + 4]
mov byte [rsp + 0x51], r13b
lea r13, [rdi - 5]
neg r13
sar r13, 0x3f
and r13d, 1
lea r15, [rcx - 5]
nop
lea r8, [rbx + r13]
lea r8, [r8 + 4]
nop dword [rax]
test r15, r15
jbe 0x606d7f
movzx r13d, byte [rbx + r13 + 4]
mov byte [rsp + 0x50], r13b
lea r13, [rdi - 6]
neg r13
sar r13, 0x3f
and r13d, 1
lea r15, [rcx - 6]
nop
lea rbx, [r8 + r13]
cmp r15, 1
jbe 0x606d72
lea r15, [rdi - 8]
neg r15
sar r15, 0x3f
and r15d, 2
lea rdx, [rcx - 8]
movzx r8d, word [r8 + r13]
mov word [rsp + 0x52], r8w
nop
lea r8, [r15 + rbx]
nop dword [rax]
cmp rdx, 3
jbe 0x606d65
lea rdx, [rdi - 0xc]
neg rdx
sar rdx, 0x3f
and edx, 4
lea r13, [rcx - 0xc]
mov r15d, dword [r15 + rbx]
mov dword [rsp + 0x5c], r15d
nop
lea r15, [r8 + rdx]
cmp r13, 3
jbe 0x606d57
lea r13, [rdi - 0x10]
neg r13
sar r13, 0x3f
and r13d, 4
lea rbx, [rcx - 0x10]
mov edx, dword [r8 + rdx]
mov dword [rsp + 0x64], edx
nop
lea rdx, [r15 + r13]
cmp rbx, 3
jbe 0x606d4a
lea r8, [rdi - 0x14]
neg r8
sar r8, 0x3f
and r8d, 4
lea rbx, [rcx - 0x14]
mov r13d, dword [r15 + r13]
mov dword [rsp + 0x54], r13d
nop
lea r13, [rdx + r8]
nop
cmp rbx, 3
jbe 0x606d3d
lea r15, [rdi - 0x18]
mov qword [rsp + 0x80], r15
neg r15
sar r15, 0x3f
and r15d, 4
lea rbx, [rcx - 0x18]
mov edx, dword [rdx + r8]
mov dword [rsp + 0x68], edx
lea r8, [r15 + r13]
cmp rdx, rbx
jg 0x606b1f
movzx edx, byte [rsp + 0x51]
nop
cmp dl, 0x51
je 0x6067b8
cmp dl, 0x52
je 0x6067b8
cmp dl, 0x53
je 0x6067b8
cmp dl, 0x54
jne 0x606aff
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x88], rcx
mov qword [rsp + 0xa0], r9
mov qword [rsp + 0x98], r10
test sil, sil
je 0x6067f2
movzx edx, word [rsp + 0x52]
mov dword [rax + 0x38], edx
mov ebx, dword [rsp + 0x54]
call fcn.00605bc0
nop
test rax, rax
setg cl
movzx edx, byte [rsp + 0x4f]
or ecx, edx
mov rax, qword [rsp + 0x100]
cmp qword [rax + 0xa8], 0
je 0x60682c
mov r8, qword [rax + 0xa0]
mov r8d, dword [r8 + 0xc]
mov dword [rax + 0x10], r8d
jmp 0x606834
mov r8d, dword [rax + 0x14]
mov dword [rax + 0x10], r8d
mov byte [rsp + 0x4f], cl
movzx r8d, byte [rsp + 0x51]
nop
cmp r8b, 0x52
je 0x606a8d
cmp r8b, 0x51
jne 0x606a60
mov r8d, dword [rsp + 0x64]
mov r9d, dword [rax + 0x34]
add r9d, dword [rax + 0x18]
mov r10d, r8d
sub r8d, r9d
test r8d, r8d
jge 0x606a2f
mov r8, qword [rax + 0xe0]
mov rbx, qword [rax + 0xd8]
inc rbx
mov r9d, dword [rsp + 0x5c]
mov r11, qword [rax + 0xd0]
cmp r8, rbx
jae 0x6068fa
mov dword [rsp + 0x74], r10d
mov dword [rsp + 0x58], r9d
mov rax, r11
mov rcx, r8
mov edi, 1
lea rsi, [0x00638c60]
call fcn.0044f360
mov rdx, qword [rsp + 0x100]
mov qword [rdx + 0xe0], rcx
cmp dword [0x008b9550], 0
je 0x6068de
call fcn.0046b720
mov qword [r11], rax
mov rsi, qword [rdx + 0xd0]
mov qword [r11 + 8], rsi
mov qword [rdx + 0xd0], rax
movzx ecx, byte [rsp + 0x4f]
mov r9d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x74]
mov r11, rax
mov rax, rdx
mov qword [rax + 0xd8], rbx
mov dword [r11 + rbx*8 - 8], r10d
mov dword [r11 + rbx*8 - 4], r9d
mov esi, dword [rsp + 0x64]
sub esi, dword [rax + 0x18]
test esi, esi
jge 0x60692a
movzx edx, byte [rsp + 0x120]
test dl, dl
mov ebx, 1
jmp 0x606a40
movups xmmword [rsp + 0xb0], xmm15
movups xmmword [rsp + 0xc0], xmm15
movups xmmword [rsp + 0xd0], xmm15
movups xmmword [rsp + 0xe0], xmm15
mov ebx, dword [rsp + 0x70]
mov dword [rsp + 0xb0], ebx
movzx ebx, byte [rsp + 0x51]
mov byte [rsp + 0xb4], bl
movzx ebx, byte [rsp + 0x50]
mov byte [rsp + 0xb5], bl
movzx ebx, word [rsp + 0x52]
mov word [rsp + 0xb6], bx
mov ebx, dword [rsp + 0x5c]
mov dword [rsp + 0xb8], ebx
mov ebx, dword [rsp + 0x64]
mov dword [rsp + 0xbc], ebx
mov ebx, dword [rsp + 0x54]
mov dword [rsp + 0xc0], ebx
mov ebx, dword [rsp + 0x68]
mov rdx, qword [rsp + 0x80]
cmp rbx, rdx
ja 0x606d35
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rdx
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0x10], xmm0
movups xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [rsp + 0xe0]
movups xmmword [rsp + 0x30], xmm0
call fcn.00605e00
movzx ecx, byte [rsp + 0x120]
test cl, cl
movzx ecx, byte [rsp + 0x4f]
movzx edx, byte [rsp + 0x120]
mov ebx, eax
mov rax, qword [rsp + 0x100]
jmp 0x606a40
movzx edx, byte [rsp + 0x120]
test dl, dl
mov ebx, 1
nop
je 0x606a7e
test bl, bl
je 0x606a7e
mov rsi, qword [0x00832ba0]
mov edi, 1
lock xadd qword [rsi + 0x98], rdi
jmp 0x606a7e
cmp r8b, 0x53
jne 0x606a6c
or dword [rax + 0x40], 2
jmp 0x606a76
cmp r8b, 0x54
jne 0x606b0f
movzx edx, byte [rsp + 0x120]
mov r9, qword [rsp + 0xa0]
mov r11d, dword [rsp + 0x6c]
jmp 0x606ae8
mov ebx, dword [rsp + 0x64]
call fcn.00605aa0
mov ecx, dword [rsp + 0x64]
mov rax, qword [rsp + 0x100]
mov edx, dword [rax + 0x10]
mov esi, ecx
sub ecx, edx
test ecx, ecx
jl 0x606aca
mov edx, dword [rax + 0x14]
mov edi, esi
sub esi, edx
test esi, esi
jge 0x606aca
mov edx, dword [rsp + 0x5c]
mov rsi, qword [rax + 0xa8]
xor ecx, ecx
jmp 0x606cd2
mov r9, qword [rsp + 0xa0]
or r9, 1
mov r11d, dword [rsp + 0x5c]
movzx ecx, byte [rsp + 0x4f]
movzx edx, byte [rsp + 0x120]
mov esi, dword [rsp + 0x68]
mov rdi, qword [rsp + 0x78]
cmp rsi, rdi
jbe 0x606585
jmp 0x606d1f
mov rax, 0xfffffffffffffffd
add rsp, 0xf0
pop rbp
ret
mov rax, 0xfffffffffffffffd
add rsp, 0xf0
pop rbp
ret
mov rax, 0xfffffffffffffffe
add rsp, 0xf0
pop rbp
ret
mov rax, 0xffffffffffffffff
add rsp, 0xf0
pop rbp
ret
mov rdi, qword [0x00832ba0]
lock xadd qword [rdi + 0x58], r10
test r9, r9
je 0x606bc0
test sil, sil
je 0x606bc0
mov rax, qword [0x00833310]
mov rbx, qword [0x00833318]
mov rcx, qword [0x00833320]
nop
call fcn.004a9e20
mov rcx, rax
movabs rax, 0x431bde82d7b634db
imul rcx
sar rcx, 0x3f
sar rdx, 0x12
sub rdx, rcx
mov esi, dword [rsp + 0x6c]
sub edx, esi
test edx, edx
jl 0x606ba5
mov rax, qword [rsp + 0x100]
mov ebx, edx
call fcn.00605a20
mov rax, qword [rsp + 0x100]
mov edx, dword [rsp + 0x60]
movzx r8d, byte [rsp + 0x121]
movzx r12d, byte [rsp + 0x4f]
cmp dword [rax + 0x68], 0
jne 0x606c89
mov ecx, dword [rax + 0x10]
sub ecx, edx
test ecx, ecx
jle 0x606c84
mov ecx, dword [rax + 0x3c]
nop word [rax + rax]
cmp dword [rax + 0x38], ecx
jbe 0x606c7f
mov edx, dword [rax + 8]
cmp dword [rax + 0x1c], ecx
jbe 0x606c02
inc ecx
mov dword [rax + 0x3c], ecx
add dword [rax + 0x60], edx
mov ecx, edx
mov rbx, rax
nop
jmp 0x606c69
cmp dword [rax + 0x60], edx
jae 0x606c0a
mov dword [rax + 0x60], edx
mov ecx, dword [rax + 0x60]
mov esi, edx
imul edx, edx
test ecx, ecx
je 0x606cc6
mov rbx, rax
mov eax, edx
xor edx, edx
div ecx
mov edx, esi
shr esi, 4
add esi, eax
lea edi, [rcx + rsi]
mov dword [rbx + 0x60], edi
mov r9d, dword [rbx + 0x3c]
inc r9d
imul r9d, edx
nop dword [rax + rax]
cmp r9d, edi
ja 0x606c67
test edx, edx
jbe 0x606c5a
lea eax, [rdi + rdx]
lea eax, [rax - 1]
mov ecx, edx
xor edx, edx
div ecx
mov dword [rbx + 0x3c], eax
jmp 0x606c69
lea ecx, [rsi + rcx]
lea ecx, [rcx - 1]
mov dword [rbx + 0x3c], ecx
mov ecx, edx
jmp 0x606c69
mov ecx, edx
mov edx, dword [rbx + 0x38]
cmp dword [rbx + 0x3c], edx
jbe 0x606c8c
mov dword [rbx + 0x3c], edx
mov edx, dword [rbx + 0x38]
imul edx, ecx
mov dword [rbx + 0x60], edx
jmp 0x606c8c
mov rbx, rax
jmp 0x606c8c
mov rbx, rax
jmp 0x606c8c
mov rbx, rax
test r12b, r12b
jne 0x606cb1
test r8b, r8b
je 0x606cbb
cmp qword [rbx + 0xd8], 0
nop
je 0x606cbb
mov rax, rbx
mov ebx, 1
call fcn.00606de0
jmp 0x606cbb
mov rax, rbx
xor ebx, ebx
call fcn.00606de0
xor eax, eax
add rsp, 0xf0
pop rbp
ret
call fcn.00437a60
lea rcx, [r9 + 1]
mov edi, r11d
cmp rcx, rsi
jge 0x606aca
mov r8, qword [rax + 0xa8]
cmp rcx, r8
jae 0x606d2a
mov r8, qword [rax + 0xa0]
mov r9, rcx
shl rcx, 6
mov r10d, dword [r8 + rcx + 0xc]
mov r11d, edi
sub edi, r10d
test edi, edi
jl 0x606aca
cmp r10d, r11d
je 0x606ccb
mov edi, dword [r8 + rcx + 8]
sub edi, edx
test edi, edi
jg 0x606ccb
inc dword [r8 + rcx + 0x20]
jmp 0x606ccb
mov rax, rsi
mov rcx, rdi
call fcn.0046bb80
mov rax, rcx
mov rcx, r8
call fcn.0046bac0
mov rcx, rbx
call fcn.0046bb40
mov eax, 3
mov rcx, rbx
call fcn.0046bac0
mov eax, 3
mov rcx, rbx
call fcn.0046bac0
mov eax, 3
mov rcx, r13
nop
call fcn.0046bac0
mov eax, 3
mov rcx, rdx
call fcn.0046bac0
mov eax, 1
mov rcx, r15
call fcn.0046bac0
xor eax, eax
mov rcx, rax
call fcn.0046bac0
xor eax, eax
mov rcx, rax
call fcn.0046bac0
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov byte [rsp + 0x28], sil
mov byte [rsp + 0x29], r8b
call fcn.004697e0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
movzx esi, byte [rsp + 0x28]
movzx r8d, byte [rsp + 0x29]
jmp fcn.00606520