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

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x10]
sub rsp, 0x110
mov rsi, qword [rcx + 8]
mov r14d, r9d
mov r12d, r8d
mov qword [rsp + 0x68], rsi
mov r15d, edx
mov rdi, rcx
mov rbx, rsi
cmp byte [rsi + 0xa8], 0
je 0x1405b84ac
mov rcx, rsi
call fcn.1405b97e0
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0xa8], 0
mov rax, qword [rsi + 0x58]
mov qword [rsp + 0x50], rax
je 0x1405b84c6
mov rcx, rbx
call fcn.1405b97e0
test r15d, r15d
js 0x1405b9437
cmp r15d, dword [rbx + 0xa0]
jge 0x1405b9437
test r12d, r12d
js 0x1405b9437
mov eax, dword [rbx + 0xa4]
cmp r12d, eax
jge 0x1405b9437
imul eax, r15d
mov qword [rsp + 0x108], r13
add eax, r12d
movsxd rcx, eax
mov rax, qword [rbx + 0x98]
mov rbx, qword [rdi + 8]
mov r13d, dword [rax + rcx*4]
cmp byte [rbx + 0xa8], 0
mov dword [rbp + 0x50], r13d
je 0x1405b852a
mov rcx, rbx
call fcn.1405b97e0
mov edx, r13d
mov rcx, rbx
call fcn.1405b7190
cmp eax, 0xffffffff
je 0x1405b942f
mov r8, qword [rbx + 0x90]
movsxd rdx, eax
mov rcx, qword [r8 + 0x10]
lea rax, [rcx + rdx*4]
mov eax, dword [rax + r8]
cdq
idiv dword [rbx + 0xa4]
cmp r15d, eax
jne 0x1405b942f
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0xa8], 0
je 0x1405b8579
mov rcx, rbx
call fcn.1405b97e0
mov edx, r13d
mov rcx, rbx
call fcn.1405b7190
cmp eax, 0xffffffff
je 0x1405b942f
mov r8, qword [rbx + 0x90]
movsxd rdx, eax
mov rcx, qword [r8 + 0x10]
lea rax, [rcx + rdx*4]
mov eax, dword [rax + r8]
cdq
idiv dword [rbx + 0xa4]
cmp r12d, edx
jne 0x1405b942f
mov rcx, rdi
call fcn.140569f20
mov rcx, rdi
mov rbx, rax
call fcn.140569f20
mov rdx, r13
shl rdx, 5
mov qword [rsp + 0x60], rdx
mov rcx, qword [rax + 0xe0]
mov r8d, dword [rdx + rcx + 0x1c]
lea rcx, [rbx + 0xa8]
lea rdx, [rbp - 0x30]
call fcn.1404fe0f0
lea rdx, [rsp + 0x70]
mov rcx, rax
call fcn.1405018e0
lea rcx, [rbp - 0x30]
call fcn.1404fc410
mov edx, 3
lea rcx, [rbp - 0x60]
call fcn.1406fde60
lea r8, [rbp - 0x60]
mov edx, 0x2f00
lea rcx, [rsp + 0x70]
call fcn.1405011a0
lea rcx, [rbp - 0x60]
call fcn.1406fe2b0
mov edx, 0x4810
lea rcx, [rsp + 0x70]
call fcn.1404fe8a0
test eax, eax
lea rcx, [rsp + 0x70]
mov ebx, 1
mov edx, 0x4811
cmove eax, ebx
mov dword [rsp + 0x4c], eax
call fcn.1404fe8a0
mov rsi, qword [rdi + 8]
test eax, eax
cmove eax, ebx
mov rbx, rsi
mov dword [rsp + 0x38], eax
cmp byte [rsi + 0xa8], 0
je 0x1405b867f
mov rcx, rsi
call fcn.1405b97e0
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0xa8], 0
mov r15d, dword [rsi + 0xa0]
mov rsi, rbx
je 0x1405b869e
mov rcx, rbx
call fcn.1405b97e0
mov rsi, qword [rdi + 8]
mov edx, r13d
mov rcx, rbx
call fcn.1405b7190
cmp eax, 0xffffffff
je 0x1405b86cb
mov r8, qword [rbx + 0x90]
movsxd rdx, eax
mov rcx, qword [r8 + 0x10]
lea rax, [rcx + rdx*4]
mov eax, dword [rax + r8]
cdq
idiv dword [rbx + 0xa4]
sub r15d, eax
mov rbx, rsi
cmp r14d, r15d
cmovl r15d, r14d
cmp byte [rsi + 0xa8], 0
mov dword [rsp + 0x44], r15d
mov dword [rbp + 0x68], r15d
je 0x1405b86f6
mov rcx, rsi
call fcn.1405b97e0
mov rbx, qword [rdi + 8]
cmp byte [rbx + 0xa8], 0
mov r12d, dword [rsi + 0xa4]
je 0x1405b870e
mov rcx, rbx
call fcn.1405b97e0
mov edx, r13d
mov rcx, rbx
call fcn.1405b7190
cmp eax, 0xffffffff
jne 0x1405b8722
mov edx, eax
jmp 0x1405b873f
mov r8, qword [rbx + 0x90]
movsxd rdx, eax
mov rcx, qword [r8 + 0x10]
lea rax, [rcx + rdx*4]
mov eax, dword [rax + r8]
cdq
idiv dword [rbx + 0xa4]
sub r12d, edx
cmp dword [rbp + 0x70], r12d
cmovl r12d, dword [rbp + 0x70]
mov dword [rsp + 0x30], r12d
mov dword [rbp + 0x70], r12d
cmp r15d, dword [rsp + 0x4c]
jl 0x1405b9425
cmp r12d, dword [rsp + 0x38]
jl 0x1405b9425
mov ecx, dword [rbp + 0x58]
mov ebx, ecx
lea eax, [r15 + rcx]
cmp ecx, eax
jge 0x1405b8917
mov ecx, dword [rbp + 0x60]
lea r13d, [rcx - 1]
jmp 0x1405b8787
mov ecx, dword [rbp + 0x60]
mov rsi, qword [rdi + 8]
mov r14, rsi
cmp byte [rsi + 0xa8], 0
je 0x1405b87a6
mov rcx, rsi
call fcn.1405b97e0
mov ecx, dword [rbp + 0x60]
mov r14, qword [rdi + 8]
test ebx, ebx
js 0x1405b87d7
cmp ebx, dword [rsi + 0xa0]
jge 0x1405b87d7
mov eax, dword [rsi + 0xa4]
cmp ecx, eax
jge 0x1405b87d7
imul eax, ebx
mov r15, rdi
add eax, ecx
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov esi, dword [rax + rcx*4]
mov dword [rsp + 0x40], esi
jmp 0x1405b87de
mov esi, dword [rsp + 0x40]
xor r15d, r15d
cmp byte [r14 + 0xa8], 0
je 0x1405b87f0
mov rcx, r14
call fcn.1405b97e0
test ebx, ebx
js 0x1405b882a
cmp ebx, dword [r14 + 0xa0]
jge 0x1405b882a
test r13d, r13d
js 0x1405b882a
mov eax, dword [r14 + 0xa4]
cmp r13d, eax
jge 0x1405b882a
imul eax, ebx
mov rdx, rdi
add eax, r13d
movsxd rcx, eax
mov rax, qword [r14 + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
jmp 0x1405b8830
mov eax, dword [rsp + 0x3c]
xor edx, edx
cmp r15, rdx
jne 0x1405b883d
cmp esi, eax
je 0x1405b9425
mov rsi, qword [rdi + 8]
mov r15d, dword [rbp + 0x60]
mov r14, rsi
add r15d, r12d
cmp byte [rsi + 0xa8], 0
je 0x1405b8860
mov rcx, rsi
call fcn.1405b97e0
mov r14, qword [rdi + 8]
test ebx, ebx
js 0x1405b8898
cmp ebx, dword [rsi + 0xa0]
jge 0x1405b8898
test r15d, r15d
js 0x1405b8898
mov eax, dword [rsi + 0xa4]
cmp r15d, eax
jge 0x1405b8898
imul eax, ebx
mov r12, rdi
add eax, r15d
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov esi, dword [rax + rcx*4]
mov dword [rsp + 0x48], esi
jmp 0x1405b889f
mov esi, dword [rsp + 0x48]
xor r12d, r12d
dec r15d
cmp byte [r14 + 0xa8], 0
je 0x1405b88b4
mov rcx, r14
call fcn.1405b97e0
test ebx, ebx
js 0x1405b88ee
cmp ebx, dword [r14 + 0xa0]
jge 0x1405b88ee
test r15d, r15d
js 0x1405b88ee
mov eax, dword [r14 + 0xa4]
cmp r15d, eax
jge 0x1405b88ee
imul eax, ebx
mov rdx, rdi
add eax, r15d
movsxd rcx, eax
mov rax, qword [r14 + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x34], eax
jmp 0x1405b88f4
mov eax, dword [rsp + 0x34]
xor edx, edx
cmp r12, rdx
jne 0x1405b8901
cmp esi, eax
je 0x1405b9425
mov eax, dword [rsp + 0x44]
inc ebx
add eax, dword [rbp + 0x58]
mov r12d, dword [rsp + 0x30]
cmp ebx, eax
jl 0x1405b8784
mov esi, dword [rbp + 0x60]
mov ebx, esi
lea eax, [rsi + r12]
mov dword [rsp + 0x48], eax
cmp esi, eax
jge 0x1405b8acd
mov r12d, dword [rbp + 0x58]
lea r13d, [r12 - 1]
nop word [rax + rax]
mov rsi, qword [rdi + 8]
mov r14, rsi
cmp byte [rsi + 0xa8], 0
je 0x1405b895c
mov rcx, rsi
call fcn.1405b97e0
mov r14, qword [rdi + 8]
cmp r12d, dword [rsi + 0xa0]
jge 0x1405b898f
test ebx, ebx
js 0x1405b898f
mov eax, dword [rsi + 0xa4]
cmp ebx, eax
jge 0x1405b898f
imul eax, r12d
mov r15, rdi
add eax, ebx
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov esi, dword [rax + rcx*4]
mov dword [rsp + 0x40], esi
jmp 0x1405b8996
mov esi, dword [rsp + 0x40]
xor r15d, r15d
cmp byte [r14 + 0xa8], 0
je 0x1405b89a8
mov rcx, r14
call fcn.1405b97e0
test r13d, r13d
js 0x1405b89e1
cmp r13d, dword [r14 + 0xa0]
jge 0x1405b89e1
test ebx, ebx
js 0x1405b89e1
mov eax, dword [r14 + 0xa4]
cmp ebx, eax
jge 0x1405b89e1
imul eax, r13d
mov rdx, rdi
add eax, ebx
movsxd rcx, eax
mov rax, qword [r14 + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x3c], eax
jmp 0x1405b89e7
mov eax, dword [rsp + 0x3c]
xor edx, edx
cmp r15, rdx
jne 0x1405b89f4
cmp esi, eax
je 0x1405b9425
mov rsi, qword [rdi + 8]
mov r15d, dword [rsp + 0x44]
mov r14, rsi
add r15d, r12d
cmp byte [rsi + 0xa8], 0
je 0x1405b8a18
mov rcx, rsi
call fcn.1405b97e0
mov r14, qword [rdi + 8]
test r15d, r15d
js 0x1405b8a52
cmp r15d, dword [rsi + 0xa0]
jge 0x1405b8a52
test ebx, ebx
js 0x1405b8a52
mov ecx, dword [rsi + 0xa4]
cmp ebx, ecx
jge 0x1405b8a52
mov eax, r15d
mov r12, rdi
imul eax, ecx
add eax, ebx
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov esi, dword [rax + rcx*4]
mov dword [rsp + 0x34], esi
jmp 0x1405b8a59
mov esi, dword [rsp + 0x34]
xor r12d, r12d
dec r15d
cmp byte [r14 + 0xa8], 0
je 0x1405b8a6e
mov rcx, r14
call fcn.1405b97e0
test r15d, r15d
js 0x1405b8aa7
cmp r15d, dword [r14 + 0xa0]
jge 0x1405b8aa7
test ebx, ebx
js 0x1405b8aa7
mov eax, dword [r14 + 0xa4]
cmp ebx, eax
jge 0x1405b8aa7
imul eax, r15d
mov rdx, rdi
add eax, ebx
movsxd rcx, eax
mov rax, qword [r14 + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x58], eax
jmp 0x1405b8aad
mov eax, dword [rsp + 0x58]
xor edx, edx
cmp r12, rdx
jne 0x1405b8aba
cmp esi, eax
je 0x1405b9425
mov r12d, dword [rbp + 0x58]
inc ebx
cmp ebx, dword [rsp + 0x48]
jl 0x1405b8940
mov esi, dword [rbp + 0x60]
mov rdx, qword [rsp + 0x50]
mov ecx, dword [rdx + 0x8c]
lea eax, [rcx + 1]
mov dword [rdx + 0x8c], eax
test ecx, ecx
jne 0x1405b8aeb
inc dword [rdx + 0x80]
mov rcx, rdi
call fcn.140569f20
mov r14, qword [rsp + 0x60]
mov ebx, dword [rbp + 0x50]
mov r8d, ebx
mov r9, qword [rax + 0xe0]
mov edx, dword [r9 + r14]
mov r10d, dword [r9 + r14 + 0x10]
mov dword [rsp + 0x3c], r10d
test edx, edx
je 0x1405b8b46
nop word [rax + rax]
mov ecx, edx
shl rcx, 5
add rcx, r9
cmp dword [rcx + 8], r8d
jne 0x1405b8b38
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add r10d, eax
mov r8d, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b8b20
mov dword [rsp + 0x3c], r10d
mov rdx, qword [rsp + 0x68]
mov eax, dword [rdx + 0xa4]
imul eax, dword [rbp + 0x58]
add eax, esi
movsxd rcx, eax
mov rax, qword [rdx + 0x98]
mov eax, dword [rax + rcx*4]
mov dword [rsp + 0x40], eax
lea rax, [rdx + 0x88]
mov r15, qword [rax]
mov qword [rbp - 0x50], rax
mov r13, qword [r15 + 0x10]
movsxd rax, dword [r15 + 4]
mov r10, rax
shl r10, 2
lea r12, [r15 + r13]
sub r10, r12
mov rsi, r12
add r10, r15
add r10, r13
sar r10, 2
test r10, r10
jle 0x1405b8c32
mov rcx, qword [rsp + 0x50]
mov r13d, dword [rsp + 0x3c]
mov rbx, qword [rcx + 0xe0]
nop dword [rax]
nop word [rax + rax]
mov r11, r10
shr r11, 1
mov r8d, dword [rsi + r11*4]
lea r14, [rsi + r11*4]
mov eax, r8d
shl rax, 5
mov edx, dword [rax + rbx]
mov r9d, dword [rax + rbx + 0x10]
test edx, edx
je 0x1405b8c02
mov ecx, edx
shl rcx, 5
add rcx, rbx
cmp dword [rcx + 8], r8d
jne 0x1405b8bf9
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add r9d, eax
mov r8d, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b8be1
cmp r9d, r13d
jae 0x1405b8c1a
mov rax, 0xffffffffffffffff
lea rsi, [r14 + 4]
sub rax, r11
add r10, rax
jmp 0x1405b8c1d
mov r10, r11
test r10, r10
jg 0x1405b8bc0
mov eax, dword [r15 + 4]
mov r13, qword [r15 + 0x10]
mov ebx, dword [rbp + 0x50]
mov r14, qword [rsp + 0x60]
sub rsi, r12
sar rsi, 2
lea ecx, [rsi + 1]
mov dword [rsp + 0x58], ecx
cmp ecx, eax
jb 0x1405b8c4f
mov rsi, qword [rsp + 0x68]
mov r8d, dword [rsi + 0x6c]
jmp 0x1405b8c60
movsxd rax, esi
mov rsi, qword [rsp + 0x68]
lea rcx, [r15 + rax*4]
mov r8d, dword [rcx + r13 + 4]
mov r15, qword [rsp + 0x50]
mov eax, r8d
shl rax, 5
mov r9, qword [r15 + 0xe0]
mov edx, dword [rax + r9]
mov r12d, dword [rax + r9 + 0x10]
mov dword [rsp + 0x34], r12d
test edx, edx
je 0x1405b8cb6
nop word [rax + rax]
mov ecx, edx
shl rcx, 5
add rcx, r9
cmp dword [rcx + 8], r8d
jne 0x1405b8ca8
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add r12d, eax
mov r8d, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b8c90
mov dword [rsp + 0x34], r12d
mov rcx, rdi
mov byte [rsi + 0xa9], 1
call fcn.140569f20
mov r9, qword [rax + 0xe0]
mov edx, dword [r9 + r14]
mov r8d, dword [r9 + r14 + 0x10]
test edx, edx
je 0x1405b8cff
nop dword [rax]
mov ecx, edx
shl rcx, 5
add rcx, r9
cmp dword [rcx + 8], ebx
jne 0x1405b8cf7
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add r8d, eax
mov ebx, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b8ce0
mov rdx, qword [rdi + 8]
lea rcx, [rbp - 0x78]
inc r8d
mov rdx, qword [rdx + 0x58]
call fcn.140556a30
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x78]
call fcn.140557560
mov rcx, rax
call fcn.14056a600
test eax, eax
lea rcx, [rbp - 0x78]
mov ebx, eax
setne dil
mov byte [rbp + 0x50], dil
call fcn.140556bd0
mov eax, dword [rsp + 0x38]
test ebx, ebx
mov ebx, dword [rsp + 0x30]
je 0x1405b8d52
cmp eax, ebx
jne 0x1405b8d52
mov r8b, 1
jmp 0x1405b8d55
xor r8b, r8b
mov r9d, dword [rbp + 0x58]
mov r12d, r9d
mov edx, dword [rsp + 0x44]
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x38], r9d
lea ecx, [r9 + rdx]
mov dword [rsp + 0x44], ecx
cmp r9d, ecx
jge 0x1405b936e
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rbp + 0x60]
add ecx, r9d
add eax, edx
mov dword [rbp - 0x80], ecx
mov dword [rbp - 0x7c], eax
nop dword [rax]
cmp r12d, ecx
mov r14d, eax
mov r15d, 0xffffffff
cmovge r14d, edx
cmp r12d, r9d
mov dword [rsp + 0x4c], r14d
cmove r15d, dword [rsp + 0x58]
mov r13d, r15d
cmp r14d, dword [rsp + 0x48]
jge 0x1405b9153
nop dword [rax]
mov eax, dword [rsi + 0xa4]
imul eax, r12d
add eax, r14d
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov r8d, dword [rax + rcx*4]
cmp r8d, dword [rsp + 0x40]
je 0x1405b913b
mov r10, qword [rsp + 0x50]
mov r12d, r8d
shl r12, 5
mov r11, qword [r10 + 0xe0]
mov edx, dword [r12 + r11]
mov edi, dword [r12 + r11 + 0x10]
test edx, edx
je 0x1405b8e30
nop word [rax + rax]
mov ecx, edx
shl rcx, 5
add rcx, r11
cmp dword [rcx + 8], r8d
jne 0x1405b8e27
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add edi, eax
mov r8d, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b8e10
cmp r15d, 0xffffffff
jne 0x1405b8ef6
mov rcx, qword [rsi + 0x88]
mov rax, qword [rcx + 0x10]
movsxd r9, dword [rcx + 4]
shl r9, 2
lea r14, [rcx + rax]
sub r9, r14
mov r13, r14
add r9, rcx
add r9, rax
sar r9, 2
test r9, r9
jle 0x1405b8ee7
nop word [rax + rax]
mov r10, r9
shr r10, 1
lea rbx, [r10*4]
mov ecx, dword [rbx + r13]
mov eax, ecx
shl rax, 5
mov edx, dword [rax + r11]
mov r8d, dword [rax + r11 + 0x10]
test edx, edx
je 0x1405b8ebf
nop word [rax + rax]
mov eax, edx
shl rax, 5
add rax, r11
cmp dword [rax + 8], ecx
jne 0x1405b8eb7
mov ecx, dword [rax + 0x14]
add ecx, dword [rax + 0x10]
add r8d, ecx
mov ecx, edx
mov edx, dword [rax]
test edx, edx
jne 0x1405b8ea0
cmp r8d, edi
jae 0x1405b8eda
add r13, 4
mov rax, 0xffffffffffffffff
add r13, rbx
sub rax, r10
add r9, rax
jmp 0x1405b8edd
mov r9, r10
test r9, r9
jg 0x1405b8e70
mov r10, qword [rsp + 0x50]
sub r13, r14
mov r14d, dword [rsp + 0x4c]
sar r13, 2
mov r15d, r13d
mov rax, qword [r10 + 0xe0]
lea rdx, [rbp - 0x20]
lea rcx, [r10 + 0xa8]
inc r13d
mov r8d, dword [r12 + rax + 0x1c]
call fcn.1404fe0f0
lea rdx, [rbp - 0x40]
mov rcx, rax
call fcn.1405018e0
lea rcx, [rbp - 0x20]
call fcn.1404fc410
mov edx, 0x4810
lea rcx, [rbp - 0x40]
call fcn.1404fe8a0
test eax, eax
lea rcx, [rbp - 0x40]
mov ebx, eax
mov r12d, 1
mov edx, 0x4811
cmove ebx, r12d
call fcn.1404fe8a0
test eax, eax
cmove eax, r12d
mov r12d, dword [rsp + 0x38]
mov r8d, r12d
lea r10d, [rbx + r12]
cmp r12d, r10d
jge 0x1405b8fa9
mov r11d, dword [rsp + 0x40]
lea r9d, [rax + r14]
mov edx, r14d
cmp r14d, r9d
jge 0x1405b8fa1
nop dword [rax]
mov eax, dword [rsi + 0xa4]
imul eax, r8d
add eax, edx
inc edx
movsxd rcx, eax
mov rax, qword [rsi + 0x98]
mov dword [rax + rcx*4], r11d
cmp edx, r9d
jl 0x1405b8f80
inc r8d
cmp r8d, r10d
jl 0x1405b8f74
mov rcx, qword [rsp + 0x50]
mov eax, 1
mov r9d, eax
mov r8d, eax
mov edx, edi
call fcn.14063fb20
mov rdx, qword [rsi + 0x88]
cmp r13d, dword [rdx + 4]
jb 0x1405b8fd3
mov r8d, dword [rsi + 0x6c]
jmp 0x1405b8fe2
mov rax, qword [rdx + 0x10]
movsxd rcx, r13d
lea rcx, [rax + rcx*4]
mov r8d, dword [rcx + rdx]
mov rcx, qword [rsp + 0x50]
mov eax, r8d
shl rax, 5
mov r9, qword [rcx + 0xe0]
mov edx, dword [rax + r9]
mov ebx, dword [rax + r9 + 0x10]
test edx, edx
je 0x1405b9035
nop dword [rax]
nop word [rax + rax]
mov ecx, edx
shl rcx, 5
add rcx, r9
cmp dword [rcx + 8], r8d
jne 0x1405b9027
mov eax, dword [rcx + 0x14]
add eax, dword [rcx + 0x10]
add ebx, eax
mov r8d, edx
mov edx, dword [rcx]
test edx, edx
jne 0x1405b9010
mov rcx, qword [rsp + 0x50]
cmp ebx, edi
jbe 0x1405b912e
cmp byte [rsp + 0x30], 0
mov r12d, dword [rsp + 0x34]
je 0x1405b907b
mov rdx, rcx
mov byte [rsp + 0x30], 0
mov r8d, r12d
lea rcx, [rbp - 0x70]
inc r12d
call fcn.140556a30
lea rcx, [rbp - 0x70]
call fcn.140558400
lea rcx, [rbp - 0x70]
call fcn.140556bd0
sub ebx, edi
inc edi
jmp 0x1405b90fe
cmp byte [rbp + 0x50], 0
je 0x1405b90fc
mov rdx, rcx
mov r8d, r12d
lea rcx, [rbp - 0x68]
inc r12d
call fcn.140556a30
mov edx, 1
lea rcx, [0x140d68488]
call fcn.1406ebbe0
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], rax
lea rcx, [rbp - 0x68]
call fcn.140558d70
mov rax, qword [rsp + 0x60]
mov ecx, dword [rax]
test ecx, ecx
je 0x1405b90da
cmp ecx, 0xffffffff
je 0x1405b90ed
mov rax, qword [rsp + 0x60]
mov ecx, 0xffffffff
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1405b90ed
mov rcx, qword [rsp + 0x60]
mov edx, 2
lea r8d, [rdx + 6]
call fcn.1406e4ad0
lea rcx, [rbp - 0x68]
call fcn.140556bd0
sub ebx, edi
inc edi
jmp 0x1405b90fe
sub ebx, edi
mov rcx, qword [rsp + 0x50]
mov r9d, ebx
mov r8d, r12d
mov dword [rsp + 0x20], 1
mov edx, edi
call fcn.14063edb0
add r12d, ebx
mov dil, 1
mov dword [rsp + 0x34], r12d
mov r12d, dword [rsp + 0x38]
mov byte [rbp + 0x50], dil
jmp 0x1405b9132
movzx edi, byte [rbp + 0x50]
lea rcx, [rbp - 0x40]
call fcn.1404fc410
inc r14d
mov dword [rsp + 0x4c], r14d
cmp r14d, dword [rsp + 0x48]
jl 0x1405b8dc0
mov r8d, dword [rsp + 0x30]
test dil, dil
movzx r8d, r8b
mov eax, 1
cmovne r8d, eax
xor dil, dil
mov dword [rsp + 0x30], r8d
mov byte [rbp + 0x50], dil
test r15d, r15d
js 0x1405b9343
lea rdi, [rsi + 0x90]
mov eax, r13d
mov r8, qword [rdi]
sub eax, r15d
movsxd rsi, r15d
movsxd rbx, eax
add rbx, rsi
mov rdx, qword [r8 + 0x10]
shl rbx, 2
lea r14, [rsi*4]
lea rcx, [r8 + rdx]
add rcx, r14
sub rbx, rcx
add rbx, rdx
add rbx, r8
sar rbx, 2
test rbx, rbx
je 0x1405b9228
test dword [r8 + 8], 0x7fffffff
je 0x1405b9228
mov eax, dword [r8]
cmp eax, 1
jbe 0x1405b91fd
mov rax, qword [rdi]
mov edx, dword [rax + 8]
and edx, 0x7fffffff
jne 0x1405b91f2
lea r9d, [rdx + 2]
xor r8d, r8d
lea edx, [r9 + 6]
lea ecx, [rdx - 4]
call fcn.1406e4920
mov qword [rdi], rax
jmp 0x1405b91fd
xor r8d, r8d
mov rcx, rdi
call fcn.14006b5b0
mov rdx, qword [rdi]
mov rax, qword [rdx + 0x10]
movsxd r8, dword [rdx + 4]
sub r8, rbx
sub r8, rsi
lea rcx, [rax + rsi*4]
shl r8, 2
add rcx, rdx
lea rdx, [rcx + rbx*4]
call fcn.1408d9100
mov rax, qword [rdi]
sub dword [rax + 4], ebx
mov rdi, qword [rbp - 0x50]
mov rax, qword [rdi]
mov ecx, dword [rax]
cmp ecx, 1
jbe 0x1405b9267
mov rax, qword [rdi]
mov edx, dword [rax + 8]
and edx, 0x7fffffff
jne 0x1405b925c
lea r9d, [rdx + 2]
xor r8d, r8d
lea edx, [r9 + 6]
lea ecx, [rdx - 4]
call fcn.1406e4920
mov qword [rdi], rax
jmp 0x1405b9267
xor r8d, r8d
mov rcx, rdi
call fcn.14006b5b0
mov rdx, qword [rdi]
movsxd rcx, r13d
mov rax, qword [rdx + 0x10]
lea rbx, [rax + rcx*4]
mov eax, dword [rdx]
add rbx, rdx
cmp eax, 1
jbe 0x1405b92b0
mov rax, qword [rdi]
mov edx, dword [rax + 8]
and edx, 0x7fffffff
jne 0x1405b92a5
lea r9d, [rdx + 2]
xor r8d, r8d
lea edx, [r9 + 6]
lea ecx, [rdx - 4]
call fcn.1406e4920
mov qword [rdi], rax
jmp 0x1405b92b0
xor r8d, r8d
mov rcx, rdi
call fcn.14006b5b0
mov rcx, qword [rdi]
mov rax, qword [rcx + 0x10]
add rax, r14
add rax, rcx
sub rbx, rax
sar rbx, 2
test rbx, rbx
je 0x1405b9335
test dword [rcx + 8], 0x7fffffff
je 0x1405b9335
mov eax, dword [rcx]
cmp eax, 1
jbe 0x1405b930a
mov rax, qword [rdi]
mov edx, dword [rax + 8]
and edx, 0x7fffffff
jne 0x1405b92ff
lea r9d, [rdx + 2]
xor r8d, r8d
lea edx, [r9 + 6]
lea ecx, [rdx - 4]
call fcn.1406e4920
mov qword [rdi], rax
jmp 0x1405b930a
xor r8d, r8d
mov rcx, rdi
call fcn.14006b5b0
mov rdx, qword [rdi]
mov rax, qword [rdx + 0x10]
movsxd r8, dword [rdx + 4]
sub r8, rsi
sub r8, rbx
lea rcx, [rax + rsi*4]
shl r8, 2
add rcx, rdx
lea rdx, [rcx + rbx*4]
call fcn.1408d9100
mov rax, qword [rdi]
sub dword [rax + 4], ebx
mov rsi, qword [rsp + 0x68]
movzx edi, byte [rbp + 0x50]
mov r8d, dword [rsp + 0x30]
mov ecx, dword [rbp - 0x80]
inc r12d
mov eax, dword [rbp - 0x7c]
mov r9d, dword [rbp + 0x58]
mov edx, dword [rbp + 0x60]
mov dword [rsp + 0x38], r12d
cmp r12d, dword [rsp + 0x44]
jl 0x1405b8d90
mov ebx, dword [rbp + 0x70]
mov edx, dword [rbp + 0x68]
mov r15, qword [rsp + 0x50]
mov rcx, qword [rsi + 0x88]
mov rax, qword [rcx + 0x10]
mov ecx, dword [rcx + rax]
mov dword [rsi + 0x68], ecx
cmp edx, 1
jg 0x1405b9395
mov edx, 0x4810
lea rcx, [rsp + 0x70]
call fcn.1404fd850
jmp 0x1405b93ba
lea rcx, [rbp - 0x60]
call fcn.1406fde60
lea r8, [rbp - 0x60]
mov edx, 0x4810
lea rcx, [rsp + 0x70]
call fcn.1405011a0
lea rcx, [rbp - 0x60]
call fcn.1406fe2b0
cmp ebx, 1
jg 0x1405b93d0
mov edx, 0x4811
lea rcx, [rsp + 0x70]
call fcn.1404fd850
jmp 0x1405b93f7
mov edx, ebx
lea rcx, [rbp - 0x50]
call fcn.1406fde60
lea r8, [rbp - 0x50]
mov edx, 0x4811
lea rcx, [rsp + 0x70]
call fcn.1405011a0
lea rcx, [rbp - 0x50]
call fcn.1406fe2b0
mov edx, dword [rsp + 0x3c]
lea r9, [rsp + 0x70]
mov eax, 1
mov rcx, r15
mov r8d, eax
mov dword [rsp + 0x20], eax
call fcn.140640800
mov rcx, r15
mov word [rsi + 0xa8], 0
call fcn.14063c450
lea rcx, [rsp + 0x70]
call fcn.1404fc410
mov r13, qword [rsp + 0x108]
add rsp, 0x110
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret