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

Disassembly:
mov r10, r8
test edx, edx
je 0x18001e783
dec edx
je 0x18001e77e
dec edx
je 0x18001e773
or eax, 0xffffffff
ret
mov r8, r9
mov rdx, r10
jmp 0x18005b3a0
jmp 0x180057ba0
mov rcx, r8
jmp 0x180056db0
push rbp
sub rsp, 0x70
cmp byte [rcx + 2], 1
mov rbp, rcx
je 0x180056dca
mov eax, 0xfffffffc
add rsp, 0x70
pop rbp
ret
mov ecx, dword [rcx + 8]
mov eax, ecx
and eax, 0x80000001
jge 0x180056ddd
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x180057b8d
mov edx, dword [rbp + 0xc]
mov eax, edx
and eax, 0x80000001
jge 0x180056df8
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jne 0x180057b8d
test ecx, ecx
jle 0x180057b8d
test edx, edx
jle 0x180057b8d
mov dl, 0x40
mov ecx, 0x350
mov qword [rsp + 0x88], rbx
call fcn.180064060
mov rbx, rax
test rax, rax
jne 0x180056e3d
lea eax, [rbx - 2]
mov rbx, qword [rsp + 0x88]
add rsp, 0x70
pop rbp
ret
mov qword [rsp + 0x68], r12
xor edx, edx
mov r8d, 0x350
mov rcx, rax
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x50], r15
call fcn.18000e2e0
mov r11d, dword [rbp + 4]
mov dword [rbx + 0x24], r11d
mov eax, dword [rbp + 0x38]
mov dword [rbx + 0x28], eax
test al, 1
je 0x180056e74
or eax, 0x20
mov dword [rbx + 0x28], eax
mov eax, dword [rbp + 8]
xor r15d, r15d
mov dword [rbx], eax
mov ecx, dword [rbp + 0xc]
add eax, 0xf
shr eax, 4
mov dword [rbx + 4], ecx
add ecx, 0xf
mov dword [rbx + 0x10], eax
add eax, 8
shr ecx, 4
shl eax, 4
mov dword [rbx + 0x14], ecx
mov dword [rbx + 8], eax
lea eax, [rcx + 8]
mov ecx, r15d
shl eax, 4
mov dword [rbx + 0xc], eax
mov eax, dword [rbp + 0x3c]
test eax, eax
cmovg ecx, eax
lea eax, [r15 + 0x19]
mov dword [rbx + 0x1c], ecx
cmp dword [rbp + 0x3c], r15d
jle 0x180056ec1
mov eax, dword [rbp + 0x40]
mov dword [rbx + 0x20], eax
test ecx, ecx
jle 0x180056ed5
lea rdx, [rbx + 0x20]
lea rcx, [rbx + 0x1c]
call fcn.180056d20
mov eax, dword [rbp + 0x10]
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x58], r14
test eax, eax
jle 0x180056f2d
mov ecx, eax
mov dl, 0x40
mov dword [rbx + 0x90], eax
shl rcx, 4
call fcn.180064060
mov qword [rbx + 0x98], rax
test rax, rax
je 0x180057b1a
mov r8d, dword [rbx + 0x90]
mov rdx, qword [rbp + 0x18]
mov rcx, rax
shl r8, 4
call fcn.18000cad0
jmp 0x180056f3b
mov dword [rbx + 0x90], r15d
mov qword [rbx + 0x98], r15
movsxd rax, dword [rbp + 0x20]
test eax, eax
jle 0x180056f69
mov rcx, rax
mov dl, 0x40
mov dword [rbx + 0xa0], eax
shl rcx, 4
call fcn.180064060
mov qword [rbx + 0xa8], rax
test rax, rax
je 0x180057b1a
jmp 0x180056f77
mov dword [rbx + 0xa0], r15d
mov qword [rbx + 0xa8], r15
mov esi, r15d
mov r14d, 1
cmp dword [rbx + 0xa0], r15d
jle 0x180057098
mov rdi, r15
xor eax, eax
xor r9d, r9d
lea r8, [rsp + 0x80]
mov qword [rsp + 0x80], rax
mov rax, qword [rbp + 0x28]
lea edx, [r9 + 4]
xor ecx, ecx
mov dword [rsp + 0x80], 0x10307
call qword [rax + rdi]
test eax, eax
js 0x180056fcb
mov eax, dword [rsp + 0x84]
or dword [rbx + 0x18], eax
xor eax, eax
lea r8, [rsp + 0x20]
mov edx, r14d
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x48], rax
mov eax, dword [rbx + 0x90]
mov dword [rsp + 0x20], 0x10307
mov dword [rsp + 0x24], eax
mov rax, qword [rbx + 0x98]
mov qword [rsp + 0x28], rax
mov eax, dword [rbx]
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 4]
mov dword [rsp + 0x34], eax
mov eax, dword [rbx + 0x10]
mov dword [rsp + 0x38], eax
mov eax, dword [rbx + 0x14]
mov dword [rsp + 0x3c], eax
mov eax, dword [rbx + 0x1c]
mov dword [rsp + 0x40], eax
mov eax, dword [rbx + 0x20]
mov dword [rsp + 0x44], eax
mov rax, qword [rbp + 0x28]
mov rcx, qword [rax + rdi + 8]
mov rax, qword [rbx + 0xa8]
mov qword [rsp + 0x48], rcx
mov qword [rdi + rax], r15
mov rax, qword [rbx + 0xa8]
mov r10, qword [rbp + 0x28]
movsxd rcx, esi
add rcx, rcx
lea r9, [rax + rcx*8 + 8]
xor ecx, ecx
call qword [r10 + rdi]
test eax, eax
js 0x180057086
mov rax, qword [rbp + 0x28]
mov rcx, qword [rbx + 0xa8]
mov rax, qword [rdi + rax]
mov qword [rdi + rcx], rax
inc esi
add rdi, 0x10
cmp esi, dword [rbx + 0xa0]
jl 0x180056f90
test byte [rbx + 0x28], 4
jne 0x1800570a4
test byte [rbx + 0x18], 2
je 0x1800570a8
or dword [rbx + 0x18], r14d
test byte [rbx + 0x18], 4
je 0x1800570d0
mov ecx, dword [rbx + 0x14]
mov dl, 0x40
imul ecx, dword [rbx + 0x10]
shl rcx, 2
call fcn.180064060
mov qword [rbx + 0xb0], rax
test rax, rax
je 0x180057af6
test byte [rbx + 0x18], 8
je 0x1800570fe
mov eax, dword [rbx + 0x14]
mov dl, 0x40
imul eax, dword [rbx + 0x10]
lea eax, [rax + rax*2]
lea ecx, [rax + rax]
shl rcx, 2
call fcn.180064060
mov qword [rbx + 0xb8], rax
test rax, rax
je 0x180057af6
mov eax, dword [rbp + 0x34]
mov ecx, r15d
mov r8, rbp
test eax, eax
lea rdx, [rbx + 0x38]
mov r9d, 3
cmovg ecx, eax
mov dword [rbx + 0x60], ecx
mov eax, dword [rbp + 0x4c]
mov ecx, r15d
test eax, eax
cmovg ecx, eax
sub r8, rbx
mov dword [rbx + 0x2c], ecx
mov eax, dword [rbp + 0x50]
mov dword [rbx + 0x30], eax
mov eax, dword [r8 + rdx + 0x1c]
mov ecx, 2
test eax, eax
cmovg ecx, eax
mov dword [rdx], ecx
mov eax, dword [r8 + rdx + 0x28]
mov ecx, 0x1f
test eax, eax
cmovg ecx, eax
add rdx, 4
dec r9
mov dword [rdx + 8], ecx
jne 0x180057130
mov eax, dword [rbp + 0x48]
mov ecx, r15d
test eax, eax
cmovg ecx, eax
mov dword [rbx + 0x34], ecx
mov eax, dword [rbp + 0x44]
test eax, eax
jg 0x18005717d
mov eax, dword [rbx + 0x20]
lea eax, [rax + rax*4]
add eax, eax
cdq
idiv dword [rbx + 0x1c]
mov dl, 0x40
mov ecx, 0x170
mov dword [rbx + 0x5c], eax
call fcn.180064060
mov dl, 0x40
mov ecx, 0x170
mov qword [rbx + 0xc0], rax
call fcn.180064060
mov qword [rbx + 0xc8], rax
cmp qword [rbx + 0xc0], r15
je 0x180057ade
test rax, rax
je 0x180057ade
mov ecx, dword [rbx + 0x14]
mov eax, dword [rbx + 0x10]
mov dl, 0x40
imul rcx, rax
imul rcx, rcx, 0x1e8
call fcn.180064060
mov rcx, qword [rbx + 0xc0]
mov dl, 0x40
mov qword [rcx + 0x50], rax
mov ecx, dword [rbx + 0x14]
mov eax, dword [rbx + 0x10]
imul rcx, rax
imul rcx, rcx, 0x1e8
call fcn.180064060
mov rcx, qword [rbx + 0xc8]
mov qword [rcx + 0x50], rax
mov rax, qword [rbx + 0xc0]
cmp qword [rax + 0x50], r15
je 0x180057abe
mov rax, qword [rbx + 0xc8]
cmp qword [rax + 0x50], r15
je 0x180057abe
mov dl, 0x40
mov ecx, 0x400
call fcn.180064060
mov qword [rbx + 0x78], rax
test rax, rax
je 0x180057ab5
test byte [rbx + 0x18], r14b
je 0x18005726d
mov qword [rbx + 0xe0], r15
mov qword [rbx + 0xd8], r15
mov qword [rbx + 0xd0], r15
mov qword [rbx + 0xf8], r15
mov qword [rbx + 0xf0], r15
mov qword [rbx + 0xe8], r15
lea rdi, [rbx + 0x1c0]
lea rsi, [rbx + 0x1d8]
lea r12, [rbx + 0x1f0]
mov qword [rdi + 0x10], r15
mov qword [rdi + 8], r15
mov qword [rdi], r15
mov qword [rsi + 0x10], r15
mov qword [rsi + 8], r15
mov qword [rsi], r15
mov qword [r12 + 0x10], r15
mov qword [r12 + 8], r15
mov qword [r12], r15
mov rax, qword [rbx + 0xc0]
lea r13, [rbx + 0x100]
lea r14, [rbx + 0x118]
mov qword [rax + 0x48], r15
mov qword [rax + 0x40], r15
mov qword [rax + 0x38], r15
mov rax, qword [rbx + 0xc8]
mov qword [rax + 0x48], r15
mov qword [rax + 0x40], r15
mov qword [rax + 0x38], r15
mov qword [r13 + 0x10], r15
mov qword [r13 + 8], r15
mov qword [r13], r15
mov qword [r14 + 0x10], r15
mov qword [r14 + 8], r15
mov qword [r14], r15
lea r15, [rbx + 0x148]
mov qword [r15 + 0x10], 0
mov qword [r15 + 8], 0
mov qword [r15], 0
test byte [rbx + 0x18], 1
je 0x18005734b
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xe8]
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, rdi
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, rsi
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r12
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov rcx, qword [rbx + 0xc0]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov rcx, qword [rbx + 0xc8]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r13
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r14
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r15
call fcn.180054c40
test eax, eax
js 0x1800579eb
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x178]
call fcn.180054c40
test eax, eax
js 0x1800579eb
xor eax, eax
mov dword [rbx + 0x208], 0xffffffff
mov qword [rbx + 0x1a8], rax
mov dword [rbx + 0x1b0], eax
mov qword [rbx + 0x1b8], rax
movsxd rax, dword [rbx + 0x60]
test eax, eax
jle 0x180057566
mov rcx, rax
mov dl, 0x40
shl rcx, 3
call fcn.180064060
mov qword [rbx + 0x1b8], rax
test rax, rax
je 0x1800579eb
xor r8d, r8d
mov edx, r8d
cmp dword [rbx + 0x60], edx
jle 0x1800574a7
mov ecx, r8d
nop word [rax + rax]
mov rax, qword [rbx + 0x1b8]
inc edx
add rcx, 8
mov qword [rcx + rax - 8], r8
cmp edx, dword [rbx + 0x60]
jl 0x180057490
mov esi, r8d
cmp dword [rbx + 0x60], r8d
jle 0x180057566
mov rdi, r8
nop word [rax + rax]
mov dl, 0x40
mov ecx, 0x170
call fcn.180064060
mov rcx, qword [rbx + 0x1b8]
mov qword [rdi + rcx], rax
mov rax, qword [rbx + 0x1b8]
cmp qword [rdi + rax], 0
je 0x18005796d
mov ecx, dword [rbx + 0x14]
mov eax, dword [rbx + 0x10]
mov dl, 0x40
imul rcx, rax
imul rcx, rcx, 0x1e8
call fcn.180064060
mov rcx, qword [rbx + 0x1b8]
mov rdx, qword [rcx + rdi]
mov qword [rdx + 0x50], rax
mov rax, qword [rbx + 0x1b8]
mov rcx, qword [rdi + rax]
cmp qword [rcx + 0x50], 0
je 0x18005796d
xor eax, eax
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x40], rax
mov qword [rcx + 0x38], rax
mov rax, qword [rbx + 0x1b8]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, qword [rax + rdi]
add rcx, 0x38
call fcn.180054c40
test eax, eax
js 0x18005796d
inc esi
add rdi, 8
cmp esi, dword [rbx + 0x60]
jl 0x1800574c0
mov eax, dword [rbx + 0x60]
mov dl, 0x40
mov qword [rbx + 0x190], 0
inc eax
mov dword [rbx + 0x198], 0
cdqe
lea rcx, [rax + rax*8]
shl rcx, 5
call fcn.180064060
mov qword [rbx + 0x1a0], rax
test rax, rax
je 0x18005796d
mov eax, dword [rbx + 0x60]
xor edx, edx
inc eax
test eax, eax
jle 0x1800575e4
xor ecx, ecx
nop
mov rax, qword [rbx + 0x1a0]
inc edx
add rcx, 0x120
mov qword [rcx + rax - 8], 0
mov qword [rcx + rax - 0x10], 0
mov qword [rcx + rax - 0x18], 0
mov eax, dword [rbx + 0x60]
inc eax
cmp edx, eax
jl 0x1800575b0
mov eax, dword [rbx + 0x60]
xor edi, edi
inc eax
test eax, eax
jle 0x180057629
nop
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
movsxd rax, edi
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x1a0]
shl rcx, 5
lea rcx, [rcx + rax + 0x108]
call fcn.180054c40
test eax, eax
js 0x18005791b
mov eax, dword [rbx + 0x60]
inc edi
inc eax
cmp edi, eax
jl 0x1800575f0
mov qword [rbx + 0x70], 0
mov eax, dword [rbp + 0x78]
mov r10d, 1
mov dword [rbx + 0x340], eax
mov rax, qword [rbx + 0xc0]
mov qword [rax + 0x30], 0
mov rax, qword [rbx + 0xc8]
mov qword [rax + 0x30], 0
mov r9d, dword [rbx + 0x14]
mov dword [rbx + 0x88], 0
mov dword [rbx + 0x344], 0xbf800000
mov ecx, dword [rbp + 0x7c]
cmp ecx, 1
mov eax, ecx
cmovl eax, r10d
cmp eax, r9d
jge 0x180057690
cmp ecx, r10d
cmovl ecx, r10d
jmp 0x180057693
mov ecx, r9d
mov dword [rbx + 0x348], ecx
mov edx, dword [rbp + 0x30]
test edx, edx
jle 0x1800578a1
mov r8d, r9d
shr r8d, 1
cmp edx, r8d
mov eax, r8d
cmovl eax, edx
cmp eax, r10d
jge 0x1800576bd
mov r8d, r10d
jmp 0x1800576c4
cmp edx, r8d
cmovl r8d, edx
mov eax, r8d
movsxd r14, r8d
mov dword [rbx + 0x330], r8d
cdq
idiv ecx
mov ecx, eax
cmp eax, r10d
cmovl ecx, r10d
xor edx, edx
lea eax, [r9 + rcx - 1]
div ecx
mov dl, 0x40
movsxd rdi, eax
mov rax, r14
imul rax, rax, 0x70
mov rcx, rax
mov qword [rsp + 0x80], rax
call fcn.180064060
mov qword [rbx + 0x338], rax
test rax, rax
je 0x18005789a
mov ecx, dword [rbx + 8]
mov dl, 0x40
imul ecx, dword [rbx + 0x14]
shl ecx, 4
call fcn.180064060
mov rcx, qword [rbx + 0x338]
mov qword [rcx + 0x50], rax
mov rax, qword [rbx + 0x338]
cmp qword [rax + 0x50], 0
je 0x18005789a
xor r12d, r12d
xor esi, esi
test r14, r14
jle 0x180057867
mov r15, rdi
shl r15, 2
xor edi, edi
nop word [rax + rax]
mov r13d, dword [rbx + 0x348]
mov eax, dword [rbx + 0x330]
mov dl, 0x40
cmp eax, r13d
mov rcx, r15
cmovl r13d, eax
call fcn.180064060
mov rcx, qword [rbx + 0x338]
mov qword [rcx + rdi + 0x28], rax
mov rax, qword [rbx + 0x338]
cmp qword [rax + rdi + 0x28], 0
je 0x180057885
test rsi, rsi
jle 0x180057841
cmp r12d, r13d
jge 0x18005783e
mov dl, 0x40
mov ecx, 0x28
call fcn.180064060
mov rcx, qword [rbx + 0x338]
mov qword [rcx + rdi + 0x58], rax
mov rax, qword [rbx + 0x338]
cmp qword [rax + rdi + 0x58], 0
je 0x180057885
mov dl, 0x40
mov ecx, 0x20
call fcn.180064060
mov rcx, qword [rbx + 0x338]
mov qword [rcx + rdi + 0x60], rax
mov r8, qword [rbx + 0x338]
cmp qword [r8 + rdi + 0x60], 0
je 0x180057885
xor edx, edx
lea eax, [r12 - 1]
imul eax, dword [rbx + 8]
imul eax, dword [rbx + 0x14]
div r13d
shl eax, 4
mov ecx, eax
add rcx, qword [r8 + 0x50]
mov qword [r8 + rdi + 0x50], rcx
mov rcx, qword [rbx + 0x338]
xor r8d, r8d
mov rdx, qword [rcx + rdi + 0x50]
mov rcx, qword [rcx + rdi + 0x58]
call fcn.180056c80
test rsi, rsi
je 0x180057854
mov rcx, qword [rbx + 0x338]
mov rax, qword [rcx + rdi - 0x48]
mov qword [rcx + rdi + 0x30], rax
inc rsi
inc r12d
add rdi, 0x70
cmp rsi, r14
jl 0x180057760
mov rcx, qword [rbx + 0x338]
mov rax, qword [rsp + 0x80]
mov rax, qword [rcx + rax - 0x48]
sub rax, 4
mov qword [rcx + 0x30], rax
jmp 0x1800578c2
lea r15, [rbx + 0x148]
lea r13, [rbx + 0x100]
lea r12, [rbx + 0x1f0]
lea r14, [rbx + 0x118]
mov rcx, qword [rbx + 0x338]
test rcx, rcx
je 0x180057903
mov rcx, qword [rcx + 0x50]
test rcx, rcx
je 0x1800578bb
call fcn.1800640e0
mov dword [rbp + 0x30], 0
mov qword [rbp + 0x70], rbx
mov rcx, qword [rbx + 0x78]
call fcn.180064030
xor eax, eax
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x98]
mov rsi, qword [rsp + 0x90]
mov r12, qword [rsp + 0x68]
mov r13, qword [rsp + 0x60]
mov r15, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x88]
add rsp, 0x70
pop rbp
ret
mov dl, 0x40
mov ecx, reloc.WS2_32.dll_WSASetLastError
call fcn.180064060
mov qword [rbx + 0x338], rax
test rax, rax
jne 0x1800578bb
mov eax, dword [rbx + 0x60]
xor edi, edi
inc eax
test eax, eax
jle 0x180057961
nop word [rax + rax]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
movsxd rax, edi
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x1a0]
shl rcx, 5
lea rcx, [rcx + rax + 0x108]
call fcn.180054d40
mov eax, dword [rbx + 0x60]
inc edi
inc eax
cmp edi, eax
jl 0x180057930
mov rcx, qword [rbx + 0x1a0]
call fcn.1800640e0
mov eax, dword [rbx + 0x60]
test eax, eax
jle 0x1800579dd
xor esi, esi
test eax, eax
jle 0x1800579d1
xor edi, edi
nop dword [rax]
mov rcx, qword [rbx + 0x1b8]
cmp qword [rdi + rcx], 0
je 0x1800579c6
mov rcx, qword [rdi + rcx]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov r11, qword [rbx + 0x1b8]
mov rcx, qword [rdi + r11]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0x1b8]
mov rcx, qword [rdi + rcx]
call fcn.1800640e0
inc esi
add rdi, 8
cmp esi, dword [rbx + 0x60]
jl 0x180057980
mov rcx, qword [rbx + 0x1b8]
call fcn.1800640e0
lea rsi, [rbx + 0x1d8]
lea rdi, [rbx + 0x1c0]
test byte [rbx + 0x18], 1
je 0x180057a17
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xe8]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, rdi
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, rsi
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r12
call fcn.180054d40
mov rcx, qword [rbx + 0xc0]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov rcx, qword [rbx + 0xc8]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r13
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r14
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
mov rcx, r15
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x178]
call fcn.180054d40
xor r15d, r15d
mov rcx, qword [rbx + 0x78]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc0]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc8]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc0]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc8]
call fcn.1800640e0
test byte [rbx + 0x18], 4
je 0x180057b08
mov rcx, qword [rbx + 0xb0]
call fcn.1800640e0
test byte [rbx + 0x18], 8
je 0x180057b1a
mov rcx, qword [rbx + 0xb8]
call fcn.1800640e0
cmp dword [rbx + 0xa0], 0
mov esi, r15d
jle 0x180057b5f
mov rdi, r15
nop dword [rax]
mov rcx, qword [rbx + 0xa8]
mov rax, qword [rdi + rcx]
test rax, rax
je 0x180057b51
mov rcx, qword [rdi + rcx + 8]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
call rax
inc esi
add rdi, 0x10
cmp esi, dword [rbx + 0xa0]
jl 0x180057b30
mov rcx, qword [rbx + 0xa8]
call fcn.1800640e0
mov rcx, qword [rbx + 0x98]
call fcn.1800640e0
mov rcx, rbx
call fcn.1800640e0
mov qword [rbp + 0x70], r15
mov eax, 0xfffffffe
jmp 0x1800578d1
or eax, 0xffffffff
add rsp, 0x70
pop rbp
ret
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov eax, dword [rcx + 0x60]
xor esi, esi
mov rbx, rcx
inc eax
mov edi, esi
test eax, eax
jle 0x180057bf1
nop
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
movsxd rax, edi
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x1a0]
shl rcx, 5
lea rcx, [rcx + rax + 0x108]
call fcn.180054d40
mov eax, dword [rbx + 0x60]
inc edi
inc eax
cmp edi, eax
jl 0x180057bc0
mov rcx, qword [rbx + 0x1a0]
mov qword [rsp + 0x38], rbp
call fcn.1800640e0
mov r11d, dword [rbx + 0x60]
test r11d, r11d
jle 0x180057c6c
mov ebp, esi
mov rdi, rsi
mov rcx, qword [rbx + 0x1b8]
cmp qword [rcx + rdi], rsi
je 0x180057c55
mov rcx, qword [rcx + rdi]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov r11, qword [rbx + 0x1b8]
mov rcx, qword [r11 + rdi]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0x1b8]
mov rcx, qword [rcx + rdi]
call fcn.1800640e0
inc ebp
add rdi, 8
cmp ebp, dword [rbx + 0x60]
jl 0x180057c10
mov rcx, qword [rbx + 0x1b8]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc0]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov rcx, qword [rbx + 0xc8]
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
add rcx, 0x38
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x100]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x118]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x148]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x1c0]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x1d8]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x1f0]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0x178]
call fcn.180054d40
test byte [rbx + 0x18], 1
je 0x180057d4b
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
call fcn.180054d40
mov r8d, dword [rbx + 0xc]
mov edx, dword [rbx + 8]
lea rcx, [rbx + 0xe8]
call fcn.180054d40
mov rcx, qword [rbx + 0xc0]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc0]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc8]
mov rcx, qword [rcx + 0x50]
call fcn.1800640e0
mov rcx, qword [rbx + 0xc8]
call fcn.1800640e0
test byte [rbx + 0x18], 4
je 0x180057d95
mov rcx, qword [rbx + 0xb0]
call fcn.1800640e0
test byte [rbx + 0x18], 8
je 0x180057da7
mov rcx, qword [rbx + 0xb8]
call fcn.1800640e0
mov ecx, dword [rbx + 0xa0]
test ecx, ecx
jle 0x180057e0e
xor eax, eax
mov ebp, esi
mov qword [rsp + 0x30], rax
mov eax, dword [rbx + 0x340]
mov dword [rsp + 0x30], 0x10307
mov dword [rsp + 0x34], eax
test ecx, ecx
jle 0x180057e02
mov rdi, rsi
mov rax, qword [rbx + 0xa8]
cmp qword [rdi + rax], rsi
je 0x180057df4
mov rcx, qword [rdi + rax + 8]
xor r9d, r9d
lea r8, [rsp + 0x30]
lea edx, [r9 + 2]
call qword [rdi + rax]
inc ebp
add rdi, 0x10
cmp ebp, dword [rbx + 0xa0]
jl 0x180057dd3
mov rcx, qword [rbx + 0xa8]
call fcn.1800640e0
mov rcx, qword [rbx + 0x78]
call fcn.1800640e0
cmp dword [rbx + 0x90], esi
jbe 0x180057e2b
mov rcx, qword [rbx + 0x98]
call fcn.1800640e0
cmp dword [rbx + 0x330], esi
jle 0x180057ed1
mov ebp, 1
lea edi, [rbp + 0x6f]
nop
mov edx, dword [rbx + 0x330]
mov ecx, dword [rbx + 0x348]
cmp edx, ecx
mov eax, ecx
cmovl eax, edx
cmp eax, 1
jge 0x180057e5f
mov ecx, 1
jmp 0x180057e64
cmp edx, ecx
cmovl ecx, edx
cmp ebp, ecx
jge 0x180057e92
mov rcx, qword [rbx + 0x338]
mov rcx, qword [rdi + rcx + 0x58]
call fcn.1800640e0
mov rcx, qword [rbx + 0x338]
mov rcx, qword [rdi + rcx + 0x60]
call fcn.1800640e0
inc ebp
add rdi, 0x70
jmp 0x180057e40
mov rax, qword [rbx + 0x338]
mov rcx, qword [rax + 0x50]
test rcx, rcx
je 0x180057ea7
call fcn.1800640e0
cmp dword [rbx + 0x330], esi
jle 0x180057ed1
mov rdi, rsi
mov rcx, qword [rbx + 0x338]
mov rcx, qword [rdi + rcx + 0x28]
call fcn.1800640e0
inc esi
add rdi, 0x70
cmp esi, dword [rbx + 0x330]
jl 0x180057eb2
mov rcx, qword [rbx + 0x338]
call fcn.1800640e0
mov rcx, rbx
call fcn.1800640e0
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
xor eax, eax
add rsp, 0x20
pop rdi
ret
push rbp
push rbx
push r12
push r13
lea rbp, [rsp - 0x3f]
sub rsp, 0x88
cmp byte [rdx + 2], 1
mov r13, r8
mov r12, rdx
mov rbx, rcx
jne 0x18005c036
test r8, r8
je 0x18005b3d6
cmp byte [r8 + 2], 1
jne 0x18005c036
mov rax, qword [rdx + 0x78]
mov qword [rsp + 0x80], r15
xor r15d, r15d
mov rcx, rax
mov dword [rdx + 0x84], r15d
and ecx, 3
sub rax, rcx
mov qword [rbp + 0x17], rax
mov qword [rbp + 0x1f], rax
lea edx, [rcx*8]
mov r8d, dword [rax]
bswap r8d
mov dword [rbp + 7], r8d
mov eax, dword [rax + 4]
mov dword [rbp + 0x2b], edx
bswap eax
mov dword [rbp + 0x13], edx
mov dword [rbp + 0xb], eax
test edx, edx
je 0x18005b434
mov ecx, 0x20
sub ecx, edx
or edx, 0xffffffff
shl edx, cl
and edx, r8d
mov dword [rbp + 0xf], edx
jmp 0x18005b438
mov dword [rbp + 0xf], r15d
mov r8d, dword [r12 + 0x30]
mov qword [rsp + 0xb0], rsi
mov dword [rbp + 0x27], r15d
mov qword [rsp + 0xc0], rdi
cmp r8d, 0x4000
je 0x18005b5b4
movsxd rax, dword [rbx + 0x194]
mov r9d, dword [rbx + 8]
lea rdx, [r12 + 0x38]
lea rdi, [rax + rax*8]
mov eax, dword [r12 + 4]
lea rcx, [r12 + 0x58]
and eax, 0x20
shl rdi, 5
add rdi, qword [rbx + 0x1a0]
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r8d
mov r8d, dword [rbx + 4]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rdx
mov edx, dword [rbx]
lea rcx, [rdi + 0x108]
call fcn.180055780
test eax, eax
je 0x18005b4c3
call qword [0x180108e10]
mov eax, 0xfffffffd
jmp 0x18005bbb4
test byte [r12 + 0x28], 0x10
je 0x18005b4e1
mov r9d, dword [rbx + 8]
mov r8d, dword [rbx + 4]
mov edx, dword [rbx]
lea rcx, [rdi + 0x108]
call fcn.180055410
mov rcx, rdi
mov rdx, r12
mov r8d, 0x88
call fcn.18000cad0
mov r11, qword [r12 + 8]
test r11, r11
je 0x18005b545
mov rax, qword [r11]
lea rcx, [rdi + 0x88]
mov qword [rcx], rax
mov rax, qword [r11 + 8]
mov qword [rcx + 8], rax
mov rax, qword [r11 + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [r11 + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [r11 + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [r11 + 0x28]
mov qword [rcx + 0x28], rax
mov rax, qword [r11 + 0x30]
mov qword [rcx + 0x30], rax
mov rax, qword [r11 + 0x38]
mov qword [rdi + 8], rcx
mov qword [rcx + 0x38], rax
mov rdx, qword [r12 + 0x10]
test rdx, rdx
je 0x18005b598
mov rax, qword [rdx]
lea rcx, [rdi + 0xc8]
mov qword [rcx], rax
mov rax, qword [rdx + 8]
mov qword [rcx + 8], rax
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
mov rax, qword [rdx + 0x18]
mov qword [rcx + 0x18], rax
mov rax, qword [rdx + 0x20]
mov qword [rcx + 0x20], rax
mov rax, qword [rdx + 0x28]
mov qword [rcx + 0x28], rax
mov rax, qword [rdx + 0x30]
mov qword [rcx + 0x30], rax
mov rax, qword [rdx + 0x38]
mov qword [rdi + 0x10], rcx
mov qword [rcx + 0x38], rax
mov eax, dword [rbx + 0x194]
mov ecx, dword [rbx + 0x60]
inc eax
inc ecx
cdq
idiv ecx
inc dword [rbx + 0x198]
mov dword [rbx + 0x194], edx
mov edi, 1
mov qword [rsp + 0xc8], r14
lea r14d, [rdi + 7]
cmp dword [rbx + 0x1b0], r15d
je 0x18005b5fc
mov eax, dword [rbx + 0x1ac]
cmp dword [rbx + 0x1a8], eax
jl 0x18005be54
test byte [rbx + 0x28], 1
je 0x18005b5ee
test eax, eax
jg 0x18005bcdc
mov qword [rbx + 0x1ac], r15
mov dword [rbx + 0x1a8], r15d
cmp dword [rbx + 0x198], r15d
je 0x18005bee3
mov rax, qword [rbx + 0xc0]
mov rcx, qword [rbx + 0xc8]
mov qword [rbx + 0xc8], rax
movsxd rax, dword [rbx + 0x190]
mov qword [rbx + 0xc0], rcx
lea rdx, [rax + rax*8]
mov rax, qword [rbx + 0x1a0]
add rcx, 0x38
shl rdx, 5
lea rdx, [rdx + rax + 0x108]
call fcn.180054dc0
movsxd r11, dword [rbx + 0x190]
mov ecx, dword [rbx + 0x60]
dec dword [rbx + 0x198]
inc ecx
lea eax, [r11 + 1]
cdq
lea rsi, [r11 + r11*8]
shl rsi, 5
add rsi, qword [rbx + 0x1a0]
idiv ecx
mov ecx, dword [rbx + 0x1c]
mov dword [rbx + 0x190], edx
test ecx, ecx
jg 0x18005b684
mov ecx, dword [rsi + 0x24]
mov rax, qword [rbx + 0xc0]
mov dword [rax + 4], ecx
mov eax, dword [rbx + 0x340]
mov rcx, qword [rbx + 0xc0]
mov dword [rcx], eax
mov rax, qword [rbx + 0x70]
mov rcx, qword [rbx + 0xc0]
mov qword [rcx + 0x30], rax
mov rcx, qword [rbx + 0xc0]
movsxd rax, dword [rcx + 4]
inc dword [rbx + 0x340]
add qword [rbx + 0x70], rax
mov eax, dword [rsi + 4]
mov dword [rcx + 8], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rsi + 0x28]
mov dword [rcx + 0xc], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rsi + 0x2c]
mov dword [rcx + 0x10], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rbx + 0x68]
mov dword [rcx + 0x20], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rbx + 0x68]
mov dword [rcx + 0x24], eax
test byte [r12 + 0x28], 0x10
je 0x18005b71d
mov rcx, qword [rbx + 0xc0]
mov r9d, dword [rbx + 8]
mov r8d, dword [rbx + 4]
mov edx, dword [rbx]
add rcx, 0x38
call fcn.180055410
mov eax, dword [rsi + 0x68]
mov rcx, qword [rbx + 0xc0]
mov qword [rsp + 0x30], r13
mov dword [rbp + 0x6f], eax
mov eax, dword [rsi + 0x6c]
mov r9d, r14d
mov dword [rcx + 0x18], eax
mov rdx, qword [rbx + 0xc0]
xor r8d, r8d
lea rax, [rdx + 0x18]
mov rcx, rbx
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x20], rax
call fcn.180057f00
mov edi, dword [rbp + 0x6f]
test edi, edi
jle 0x18005b767
dec edi
jmp 0x18005b7df
mov edx, dword [rbx + 0x88]
test edx, edx
je 0x18005b808
mov r9d, dword [rbx + 0x5c]
test r9d, r9d
jle 0x18005b787
cmp edx, r9d
jge 0x18005b808
mov rcx, qword [rbx + 0x1b8]
test rcx, rcx
je 0x18005b7a4
movsxd rax, dword [rbx + 0x1a8]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rcx + 0x50]
jmp 0x18005b7a7
mov rax, r15
mov rcx, qword [rbx + 0xc8]
mov qword [rsp + 0x38], rax
mov eax, dword [r12 + 0x70]
mov dword [rsp + 0x30], eax
mov eax, dword [rbx + 0x1ac]
add rcx, 0x38
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
mov rdx, qword [rbx + 0xc0]
mov r8, rbx
call fcn.180072880
mov edi, eax
test edi, edi
je 0x18005b7f0
mov rdx, qword [rbx + 0xc0]
mov ecx, dword [rbx + 0x6c]
mov dword [rdx + 8], ecx
cmp edi, 2
jne 0x18005b812
mov eax, dword [rbx + 0x60]
cmp dword [rbx + 0x1ac], eax
mov eax, 1
cmovge edi, eax
jmp 0x18005b812
mov dword [rbx + 0x88], r15d
mov edi, r15d
inc dword [rbx + 0x88]
mov rdx, qword [rbx + 0xc0]
mov eax, dword [rbx + 0x88]
test byte [rdx + 0xc], 1
je 0x18005b868
mov r8d, dword [rbx + 4]
mov dword [rsp + 0x40], eax
mov rax, qword [rdx + 0x30]
mov qword [rsp + 0x38], rax
mov eax, dword [rdx]
lea rcx, [rdx + 0x38]
mov edx, dword [rbx + 8]
mov dword [rsp + 0x30], eax
lea rax, str._d__st:_lld__if:_d
mov qword [rsp + 0x28], rax
mov r9d, 5
mov dword [rsp + 0x20], 5
call fcn.180067980
cmp edi, 2
jne 0x18005b955
mov rcx, qword [rbx + 0xc0]
test byte [rcx + 0xc], 1
je 0x18005b8a6
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 8]
lea rax, str.BVOP
mov qword [rsp + 0x28], rax
lea r9d, [rdi + 3]
add rcx, 0x38
mov dword [rsp + 0x20], 0xc8
call fcn.180067980
mov ecx, dword [rsi + 0x6c]
cmp ecx, 1
jge 0x18005b8dc
mov rax, qword [rbx + 0xc8]
mov r8, qword [rbx + 0xc0]
mov ecx, dword [rax + 0x18]
mov eax, 0x51eb851f
add ecx, dword [r8 + 0x18]
imul ecx, dword [rbx + 0x2c]
shr ecx, 1
add ecx, dword [rbx + 0x30]
mul ecx
shr edx, 5
mov dword [r8 + 0x18], edx
jmp 0x18005b8e6
mov rax, qword [rbx + 0xc0]
mov dword [rax + 0x18], ecx
mov rax, qword [rbx + 0xc0]
mov edi, 1
mov ecx, dword [rax + 0x18]
cmp ecx, edi
jae 0x18005b8fe
mov dword [rax + 0x18], edi
jmp 0x18005b90a
cmp ecx, 0x1f
jbe 0x18005b90a
mov dword [rax + 0x18], 0x1f
movsxd rdx, dword [rbx + 0x1ac]
mov rcx, qword [rbx + 0x1b8]
mov r8, qword [rbx + 0xc0]
mov rax, qword [rcx + rdx*8]
mov qword [rbx + 0xc0], rax
mov qword [rcx + rdx*8], r8
mov rcx, qword [rbx + 0xc0]
mov rax, qword [rbx + 0xc8]
inc dword [rbx + 0x1ac]
mov qword [rbx + 0xc8], rcx
mov qword [rbx + 0xc0], rax
jmp 0x18005b5c5
test byte [rbx + 0x28], 1
jne 0x18005b9a4
cmp dword [rbx + 0x60], r15d
jle 0x18005b9a4
mov rax, qword [rbx + 0xc0]
cmp qword [rax + 0x30], r15
jle 0x18005b99b
mov rdx, qword [rbx + 0xc8]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xd0]
mov r9d, 0x20
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.180057f00
jmp 0x18005b9a4
test r13, r13
je 0x18005b9a4
mov dword [r13 + 4], r15d
test edi, edi
jne 0x18005bab0
test byte [rbx + 0x28], 2
je 0x18005bbda
cmp dword [rbx + 0x1ac], r15d
jle 0x18005bbda
movsxd rax, dword [rbx + 0x1c]
mov ecx, dword [rbx + 0x60]
dec dword [rbx + 0x340]
sub qword [rbx + 0x70], rax
mov eax, dword [rbx + 0x190]
dec dword [rbx + 0x88]
inc dword [rbx + 0x198]
add eax, ecx
inc ecx
cdq
idiv ecx
movsxd rax, edx
mov dword [rbx + 0x190], edx
lea rcx, [rax + rax*8]
mov rax, qword [rbx + 0x1a0]
shl rcx, 5
lea rdx, [rcx + rax + 0x108]
mov rcx, qword [rbx + 0xc0]
add rcx, 0x38
call fcn.180054dc0
dec dword [rbx + 0x1ac]
mov rcx, qword [rbx + 0x1b8]
movsxd rdx, dword [rbx + 0x1ac]
mov r8, qword [rbx + 0xc0]
mov rax, qword [rcx + rdx*8]
mov qword [rbx + 0xc0], rax
mov qword [rcx + rdx*8], r8
mov rcx, qword [rbx + 0xc0]
test byte [rcx + 0xc], 1
je 0x18005ba7c
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 8]
lea rax, str.CLOSED_GOP_BVOP__PVOP
mov qword [rsp + 0x28], rax
lea r9d, [rdi + 5]
add rcx, 0x38
mov dword [rsp + 0x20], 0x64
call fcn.180067980
mov rcx, qword [rbx + 0xc0]
xor edx, edx
mov eax, dword [rcx + 0x18]
imul eax, eax, 0x64
sub eax, dword [rbx + 0x30]
mov dword [rcx + 0x18], eax
mov eax, dword [rbx + 0x2c]
mov rcx, qword [rbx + 0xc0]
dec eax
add dword [rcx + 0x18], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rcx + 0x18]
div dword [rbx + 0x2c]
mov dword [rcx + 0x18], eax
mov rcx, qword [rbx + 0xc0]
test byte [rcx + 0xc], 1
je 0x18005bae7
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 8]
lea rax, str.PVOP
mov qword [rsp + 0x28], rax
add rcx, 0x38
mov r9d, 5
mov dword [rsp + 0x20], 0xc8
call fcn.180067980
test byte [rbx + 0x18], 1
je 0x18005bb0c
mov rdx, qword [rbx + 0xc0]
mov r9d, dword [rbx + 4]
mov r8d, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
add rdx, 0x38
call fcn.180054df0
lea rdx, [rbp + 7]
mov rcx, rbx
call fcn.180059920
test eax, eax
je 0x18005bb3a
mov edi, 1
test byte [rbx + 0x28], 1
mov dword [rbx + 0x1b0], edi
je 0x18005bb40
cmp dword [rbx + 0x1ac], r15d
jg 0x18005b5c5
test byte [rbx + 0x28], 1
jne 0x18005bb46
cmp dword [rbx + 0x60], r15d
jne 0x18005bb71
mov rdx, qword [rbx + 0xc0]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xd0]
mov r9d, 0x20
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.180057f00
call qword [0x180108e10]
mov r11d, dword [rbp + 0x17]
sub r11d, dword [rbp + 0x1f]
cmp dword [rbp + 0x13], r15d
je 0x18005bb9c
mov ecx, dword [rbp + 0xf]
mov rax, qword [rbp + 0x17]
bswap ecx
mov dword [rax], ecx
mov ecx, dword [rbp + 0x13]
add ecx, 7
shr ecx, 3
add r11d, ecx
mov eax, dword [rbp + 0x2b]
test eax, eax
je 0x18005bba9
shr eax, 3
sub r11d, eax
mov eax, r11d
mov r14, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xb0]
mov r15, qword [rsp + 0x80]
add rsp, 0x88
pop r13
pop r12
pop rbx
pop rbp
ret
mov rcx, qword [rbx + 0xc0]
test byte [rcx + 0xc], 1
je 0x18005bc11
mov r8d, dword [rbx + 4]
mov edx, dword [rbx + 8]
lea rax, [0x1800878f0]
mov qword [rsp + 0x28], rax
add rcx, 0x38
mov r9d, 5
mov dword [rsp + 0x20], 0xc8
call fcn.180067980
mov rax, qword [rbx + 0xc0]
mov edi, 1
mov dword [rbx + 0x88], edi
mov ecx, dword [rax + 8]
mov dword [rbx + 0x6c], ecx
mov eax, dword [rsi + 0x18]
test eax, eax
jle 0x18005bc3f
cmp eax, 5
jle 0x18005bc3a
cmp eax, 0xf
jne 0x18005bc3f
mov dword [rbx + 0x50], eax
jmp 0x18005bc42
mov dword [rbx + 0x50], edi
cmp dword [rbx + 0x50], 0xf
jne 0x18005bc5f
mov eax, dword [rsi + 0x1c]
lea rcx, [rbx + 0x54]
lea rdx, [rbx + 0x58]
mov dword [rcx], eax
mov eax, dword [rsi + 0x20]
mov dword [rdx], eax
call fcn.180058770
test byte [rbx + 0x6c], dil
je 0x18005bc89
mov rdx, qword [rsi + 8]
test rdx, rdx
je 0x18005bc77
mov rcx, qword [rbx + 0x78]
call fcn.180063eb0
mov rdx, qword [rsi + 0x10]
test rdx, rdx
je 0x18005bc89
mov rcx, qword [rbx + 0x78]
call fcn.180063f60
mov rax, qword [rbx + 0xc0]
test byte [rax + 8], 0x20
jne 0x18005bc9d
and dword [rax + 0xc], 0xfffff9ff
test byte [rbx + 0x18], dil
je 0x18005bcc2
mov rdx, qword [rbx + 0xc0]
mov r9d, dword [rbx + 4]
mov r8d, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
add rdx, 0x38
call fcn.180054df0
lea rdx, [rbp + 7]
mov rcx, rbx
call fcn.180058d90
or dword [r12 + 0x84], 2
jmp 0x18005bb21
mov rax, qword [rbx + 0xc0]
mov edi, dword [rbp + 0x17]
lea rcx, [rbp + 7]
sub edi, dword [rbp + 0x1f]
mov esi, dword [rax + 0x28]
xor r9d, r9d
shl edi, 3
mov rdx, rbx
sub edi, dword [rbp + 0x2b]
add edi, dword [rbp + 0x13]
mov dword [rax + 0x28], r15d
mov r8, qword [rbx + 0xc0]
mov eax, dword [r8 + 0x18]
mov dword [rsp + 0x20], eax
call fcn.180066a40
mov r11d, dword [rbp + 0x13]
mov eax, r11d
and eax, 7
sub r14d, eax
cmp r14d, 8
jge 0x18005bdeb
lea rcx, [0x1800878b0]
movsxd rax, r14d
mov r8d, dword [rcx + rax*4 - 4]
mov ecx, 0x20
sub ecx, r11d
sub ecx, r14d
cmp ecx, 0x20
ja 0x18005bd74
shl r8d, cl
mov ecx, dword [rbp + 0xf]
add r11d, r14d
or ecx, r8d
mov dword [rbp + 0x13], r11d
mov dword [rbp + 0xf], ecx
cmp r11d, 0x20
jb 0x18005bdeb
mov rax, qword [rbp + 0x17]
bswap ecx
mov dword [rax], ecx
jmp 0x18005bdde
mov edx, dword [rbp + 0xf]
lea r10d, [r11 + r14 - 0x20]
mov eax, r8d
sub r14d, r10d
mov ecx, r10d
shr eax, cl
add r11d, r14d
or edx, eax
mov dword [rbp + 0x13], r11d
cmp r11d, 0x20
jb 0x18005bdb7
mov rax, qword [rbp + 0x17]
bswap edx
mov dword [rax], edx
mov r9, qword [rbp + 0x17]
mov r11d, dword [rbp + 0x13]
add r9, 4
mov edx, r15d
add r11d, 0xffffffe0
mov qword [rbp + 0x17], r9
jmp 0x18005bdbb
mov r9, qword [rbp + 0x17]
add r11d, r10d
mov ecx, 0x20
sub ecx, r10d
mov dword [rbp + 0x13], r11d
shl r8d, cl
or edx, r8d
mov dword [rbp + 0xf], edx
cmp r11d, 0x20
jb 0x18005bdeb
bswap edx
mov dword [r9], edx
add qword [rbp + 0x17], 4
add dword [rbp + 0x13], 0xffffffe0
mov dword [rbp + 0xf], r15d
mov rax, qword [rbx + 0xc0]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xd0]
mov dword [rax + 0x28], esi
mov eax, dword [rbp + 0x17]
mov rcx, qword [rbx + 0xc0]
sub eax, dword [rbp + 0x1f]
mov r9d, 0x20
mov qword [rsp + 0x28], r15
shl eax, 3
mov qword [rsp + 0x20], r15
sub eax, dword [rbp + 0x2b]
sub eax, edi
add eax, dword [rbp + 0x13]
shr eax, 3
add dword [rcx + 0x140], eax
mov rdx, qword [rbx + 0xc0]
mov rcx, rbx
call fcn.180057f00
mov qword [rbx + 0x1ac], r15
mov dword [rbx + 0x1a8], r15d
jmp 0x18005bb71
test byte [rbx + 0x18], 1
je 0x18005be84
movsxd rcx, dword [rbx + 0x1a8]
mov rax, qword [rbx + 0x1b8]
mov r9d, dword [rbx + 4]
mov rdx, qword [rax + rcx*8]
mov r8d, dword [rbx + 8]
lea rcx, [rbx + 0xe8]
add rdx, 0x38
call fcn.180054df0
movsxd rax, dword [rbx + 0x1a8]
mov rdx, qword [rbx + 0x1b8]
lea r8, [rbp + 7]
mov rdx, qword [rdx + rax*8]
mov rcx, rbx
call fcn.18005a9b0
movsxd rax, dword [rbx + 0x1a8]
mov rdx, qword [rbx + 0x1b8]
mov rdx, qword [rdx + rax*8]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xe8]
mov r9d, 0x20
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.180057f00
inc dword [rbx + 0x1a8]
jmp 0x18005bb71
cmp dword [r12 + 0x30], 0x4000
jne 0x18005bb71
test byte [rbx + 0x28], 1
jne 0x18005bf29
cmp dword [rbx + 0x60], r15d
jle 0x18005bf29
mov rdx, qword [rbx + 0xc0]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xd0]
mov r9d, 0x20
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.180057f00
mov ecx, dword [rbx + 0x1ac]
test ecx, ecx
jle 0x18005c01b
mov rax, qword [rbx + 0xc0]
mov r8, qword [rbx + 0xc8]
mov qword [rbx + 0xc8], rax
mov qword [rbx + 0xc0], r8
lea eax, [rcx - 1]
mov rcx, qword [rbx + 0x1b8]
mov dword [rbx + 0x1ac], eax
movsxd rdx, eax
mov rax, qword [rcx + rdx*8]
mov qword [rbx + 0xc0], rax
mov qword [rcx + rdx*8], r8
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rcx + 0x18]
xor edx, edx
imul eax, eax, 0x64
sub eax, dword [rbx + 0x30]
mov dword [rcx + 0x18], eax
mov eax, dword [rbx + 0x2c]
mov rcx, qword [rbx + 0xc0]
dec eax
add dword [rcx + 0x18], eax
mov rcx, qword [rbx + 0xc0]
mov eax, dword [rcx + 0x18]
div dword [rbx + 0x2c]
mov dword [rcx + 0x18], eax
test byte [rbx + 0x18], 1
je 0x18005bfce
mov rdx, qword [rbx + 0xc0]
mov r9d, dword [rbx + 4]
mov r8d, dword [rbx + 8]
lea rcx, [rbx + 0xd0]
add rdx, 0x38
call fcn.180054df0
lea rdx, [rbp + 7]
mov rcx, rbx
mov dword [rbx + 0x34], 0xffffffff
call fcn.180059920
test byte [rbx + 0x28], 1
je 0x18005c02b
cmp dword [rbx + 0x1ac], r15d
jne 0x18005c02b
mov rdx, qword [rbx + 0xc0]
mov qword [rsp + 0x30], r13
lea r8, [rbx + 0xd0]
mov r9d, 0x20
mov rcx, rbx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r15
call fcn.180057f00
call qword [0x180108e10]
mov eax, 0xfffffffb
jmp 0x18005bbac
mov dword [rbx + 0x1b0], edi
jmp 0x18005bb71
mov eax, 0xfffffffc
add rsp, 0x88
pop r13
pop r12
pop rbx
pop rbp
ret