Function at 0x1800235b0
Capabilities:
Compress data via zlib inflate or deflate
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor r12d, r12d
mov r14, rcx
cmp rcx, r12
je 0x18002369f
mov rdi, qword [rcx + 0x28]
cmp rdi, r12
je 0x18002369f
cmp qword [rcx + 0x10], r12
je 0x18002369f
cmp qword [rcx], r12
jne 0x1800235f9
cmp dword [rcx + 8], r12d
jne 0x18002369f
cmp dword [rdi], 0xb
jne 0x180023604
mov dword [rdi], 0xc
mov r9d, dword [rcx + 0x18]
mov r10, qword [rcx + 0x10]
mov r13d, dword [rcx + 8]
mov r15, qword [rcx]
mov ebp, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xa0], r9d
mov dword [rsp + 0x38], r13d
mov r8d, r9d
mov dword [rsp + 0xa8], r9d
mov dword [rsp + 0x90], r12d
mov ebx, 1
lea rdx, [0x18002fcb0]
mov ecx, dword [rdi]
cmp ecx, 0xe
jg 0x180023e78
je 0x180023c4c
cmp ecx, 7
jg 0x180023bd1
je 0x1800239d4
cmp ecx, r12d
je 0x180023a56
sub ecx, ebx
je 0x1800236d9
sub ecx, ebx
je 0x18002375e
sub ecx, ebx
je 0x1800237d6
sub ecx, ebx
je 0x18002382d
sub ecx, ebx
je 0x180023847
cmp ecx, ebx
je 0x180023942
mov eax, 0xfffffffe
mov rbx, qword [rsp + 0x98]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x1800236bc
cmp bpl, 8
mov dword [rdi + 0x10], ebp
jne 0x180023b82
test ebp, 0xe000
jne 0x180023b82
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x180023709
mov eax, ebp
shr eax, 8
and eax, ebx
mov dword [rcx], eax
bt dword [rdi + 0x10], 9
jae 0x180023733
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov byte [rsp + 0x31], bpl
mov ecx, dword [rdi + 0x18]
mov r8d, 2
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 2
jmp 0x18002375e
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180023741
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x18002376f
mov dword [rax + 4], ebp
bt dword [rdi + 0x10], 9
jae 0x1800237ab
mov eax, ebp
mov byte [rsp + 0x30], bpl
lea rdx, [rsp + 0x30]
shr eax, 8
mov r8d, 4
mov byte [rsp + 0x31], al
mov eax, ebp
shr ebp, 0x18
shr eax, 0x10
mov byte [rsp + 0x33], bpl
mov byte [rsp + 0x32], al
mov ecx, dword [rdi + 0x18]
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 3
jmp 0x1800237d6
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x1800237b9
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x1800237f7
movzx eax, bpl
mov dword [rcx + 8], eax
mov rax, qword [rdi + 0x20]
mov ecx, ebp
shr ecx, 8
mov dword [rax + 0xc], ecx
bt dword [rdi + 0x10], 9
jae 0x180023821
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov byte [rsp + 0x31], bpl
mov ecx, dword [rdi + 0x18]
mov r8d, 2
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 4
bt dword [rdi + 0x10], 0xa
jb 0x1800238b0
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023841
mov qword [rax + 0x10], r12
mov dword [rdi], 5
bt dword [rdi + 0x10], 0xa
jae 0x180023938
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
cmp ebx, r12d
je 0x18002392e
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x18002390b
mov r9, qword [rax + 0x10]
cmp r9, r12
je 0x18002390b
mov edx, dword [rax + 0x18]
mov ecx, dword [rax + 0x1c]
sub edx, dword [rdi + 0x48]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x1800238f9
sub ecx, edx
jmp 0x1800238fb
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x180023893
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], ebp
cmp rax, r12
je 0x1800238c4
mov dword [rax + 0x18], ebp
bt dword [rdi + 0x10], 9
jae 0x1800238ee
mov byte [rsp + 0x30], bpl
shr ebp, 8
lea rdx, [rsp + 0x30]
mov byte [rsp + 0x31], bpl
mov ecx, dword [rdi + 0x18]
mov r8d, 2
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
jmp 0x180023841
mov ecx, ebx
mov r8d, ecx
mov ecx, edx
mov rdx, r15
add rcx, r9
call sub.ntdll.dll_memcpy
bt dword [rdi + 0x10], 9
jae 0x180023923
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
sub dword [rdi + 0x48], ebx
cmp dword [rdi + 0x48], r12d
jne 0x1800248bd
mov dword [rdi + 0x48], r12d
mov dword [rdi], 6
bt dword [rdi + 0x10], 0xb
jae 0x1800239bd
cmp r13d, r12d
je 0x1800248bd
mov ebx, r12d
mov r8, r15
mov rax, qword [rdi + 0x20]
movzx r12d, byte [r8]
add ebx, 1
add r8, 1
test rax, rax
je 0x180023985
mov rdx, qword [rax + 0x20]
test rdx, rdx
je 0x180023985
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x180023985
mov byte [rcx + rdx], r12b
add dword [rdi + 0x48], 1
test r12d, r12d
je 0x18002398f
cmp ebx, r13d
jb 0x180023958
bt dword [rdi + 0x10], 9
jae 0x1800239a7
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
test r12d, r12d
jne 0x1800248bd
xor r12d, r12d
jmp 0x1800239ca
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x1800239ca
mov qword [rax + 0x20], r12
mov dword [rdi + 0x48], r12d
mov dword [rdi], 7
bt dword [rdi + 0x10], 0xc
jae 0x180023b8d
cmp r13d, r12d
je 0x1800248bd
mov ebx, r12d
mov r8, r15
mov rax, qword [rdi + 0x20]
movzx r12d, byte [r8]
add ebx, 1
add r8, 1
test rax, rax
je 0x180023a1b
mov rdx, qword [rax + 0x30]
test rdx, rdx
je 0x180023a1b
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x180023a1b
mov byte [rcx + rdx], r12b
add dword [rdi + 0x48], 1
test r12d, r12d
je 0x180023a25
cmp ebx, r13d
jb 0x1800239ee
bt dword [rdi + 0x10], 9
jae 0x180023a3d
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
test r12d, r12d
jne 0x1800248bd
xor r12d, r12d
jmp 0x180023b9a
cmp dword [rdi + 8], r12d
jne 0x180023a84
mov dword [rdi], 0xc
jmp 0x18002364a
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x180023a67
test byte [rdi + 8], 2
je 0x180023ae8
cmp ebp, 0x8b1f
jne 0x180023ae8
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800288a4
lea rdx, [rsp + 0x30]
mov r8d, 2
mov dword [rdi + 0x18], eax
mov byte [rsp + 0x30], 0x1f
mov byte [rsp + 0x31], 0x8b
mov ecx, dword [rdi + 0x18]
call fcn.1800288a4
mov dword [rdi], ebx
mov dword [rdi + 0x18], eax
mov esi, r12d
mov ebp, r12d
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
jmp 0x180023643
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], r12d
cmp rax, r12
je 0x180023af9
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], bl
je 0x180023b82
movzx ecx, bpl
mov eax, ebp
shr eax, 8
shl ecx, 8
add ecx, eax
mov eax, 0x8421085
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
cmp ecx, eax
jne 0x180023b7b
mov eax, ebp
and al, 0xf
cmp al, 8
je 0x180023b3c
mov dword [rdi], 0x1b
jmp 0x180023643
shr ebp, 4
add esi, 0xfffffffc
mov ecx, ebp
and ecx, 0xf
add ecx, 8
cmp ecx, dword [rdi + 0x28]
ja 0x180023b31
mov eax, ebx
xor r8d, r8d
xor edx, edx
shl eax, cl
xor ecx, ecx
mov dword [rdi + 0x14], eax
call fcn.18002a6a4
shr ebp, 8
not ebp
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
and ebp, 2
or ebp, 9
mov dword [rdi], ebp
jmp 0x180023ac8
lea rdx, [0x18002fcb0]
mov dword [rdi], 0x1b
jmp 0x18002364a
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023b9a
mov qword [rax + 0x30], r12
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 8
mov ebx, 1
lea rdx, [0x18002fcb0]
bt dword [rdi + 0x10], 9
jae 0x180023e31
jmp 0x180023e1a
sub ecx, 8
je 0x180023bc1
sub ecx, ebx
je 0x180023cd8
sub ecx, ebx
je 0x180023d13
sub ecx, ebx
je 0x180023d52
sub ecx, ebx
je 0x180023d52
cmp ecx, ebx
jne 0x18002369f
mov ecx, esi
and ecx, 7
shr ebp, cl
sub esi, ecx
jmp 0x180023c26
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180023c09
mov eax, ebp
movzx ecx, bp
not eax
shr eax, 0x10
cmp ecx, eax
jne 0x180023b82
mov dword [rdi + 0x48], ecx
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0xe
mov r12d, dword [rdi + 0x48]
test r12d, r12d
je 0x180023e6a
cmp r12d, r13d
cmova r12d, r13d
cmp r12d, r9d
cmova r12d, r9d
test r12d, r12d
je 0x1800248bd
mov r8d, r12d
mov rdx, r15
mov rcx, r10
mov ebx, r12d
call sub.ntdll.dll_memcpy
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
sub r9d, r12d
sub r13d, r12d
add r10, rbx
add r15, rbx
sub dword [rdi + 0x48], r12d
mov dword [rsp + 0xa0], r9d
mov qword [rsp + 0x40], r10
mov r8d, dword [rsp + 0xa8]
xor r12d, r12d
jmp 0x18002363e
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180023cbb
mov ecx, ebp
mov eax, ebp
mov esi, r12d
shl eax, 0x10
and ecx, 0xff00
add ecx, eax
mov eax, ebp
shr ebp, 0x18
shr eax, 8
shl ecx, 8
and eax, 0xff00
add eax, ecx
add eax, ebp
mov ebp, r12d
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xa
cmp dword [rdi + 0xc], r12d
je 0x180024896
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18002a6a4
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xb
lea rdx, [0x18002fcb0]
cmp dword [rdi + 4], r12d
je 0x180023d89
mov ecx, esi
mov dword [rdi], 0x18
and ecx, 7
shr ebp, cl
sub esi, ecx
jmp 0x18002364a
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x180023d6c
mov eax, ebp
shr ebp, 1
add esi, 0xffffffff
and eax, ebx
mov dword [rdi + 4], eax
mov eax, ebp
and eax, 3
cmp eax, r12d
je 0x180023dec
sub eax, ebx
je 0x180023dc0
sub eax, ebx
je 0x180023db8
cmp eax, ebx
jne 0x180023df2
mov dword [rdi], 0x1b
jmp 0x180023df2
mov dword [rdi], 0xf
jmp 0x180023df2
lea rax, [0x18002f430]
mov dword [rdi + 0x68], 9
mov dword [rdi + 0x6c], 5
mov qword [rdi + 0x58], rax
lea rax, [0x18002fc30]
mov dword [rdi], 0x12
mov qword [rdi + 0x60], rax
jmp 0x180023df2
mov dword [rdi], 0xd
shr ebp, 2
add esi, 0xfffffffe
jmp 0x18002364a
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x10
jb 0x180023dfd
movzx eax, word [rdi + 0x18]
cmp ebp, eax
jne 0x180023b82
mov ebp, r12d
mov esi, r12d
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x180023e4c
mov eax, dword [rdi + 0x10]
sar eax, 9
and eax, ebx
mov dword [rcx + 0x3c], eax
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x40], ebx
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.1800288a4
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xb
jmp 0x180023ace
mov dword [rdi], 0xb
xor r12d, r12d
jmp 0x18002364a
cmp ecx, 0x16
jg 0x180024728
je 0x18002469c
sub ecx, 0xf
je 0x180023ede
sub ecx, ebx
je 0x180023f7b
sub ecx, ebx
je 0x18002425e
sub ecx, ebx
je 0x180024306
sub ecx, ebx
je 0x1800244b8
sub ecx, ebx
je 0x1800244fd
cmp ecx, ebx
jne 0x18002369f
jmp 0x180024645
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0xe
jb 0x180023ec1
mov ecx, ebp
shr ebp, 5
add esi, 0xfffffff2
mov edx, ebp
shr ebp, 5
and ecx, 0x1f
mov eax, ebp
and edx, 0x1f
add ecx, 0x101
and eax, 0xf
add edx, ebx
shr ebp, 4
add eax, 4
cmp ecx, 0x11e
mov dword [rdi + 0x74], ecx
mov dword [rdi + 0x70], eax
mov dword [rdi + 0x78], edx
ja 0x180023b31
cmp edx, 0x1e
ja 0x180023b31
mov dword [rdi + 0x7c], r12d
mov dword [rdi], 0x10
lea rdx, [0x18002fcb0]
jmp 0x180023f7b
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x180023f3a
mov eax, dword [rdi + 0x7c]
mov cl, bpl
shr ebp, 3
movzx eax, word [rdx + rax*2]
and cx, 7
mov word [rdi + rax*2 + 0x88], cx
add dword [rdi + 0x7c], ebx
add esi, 0xfffffffd
mov eax, dword [rdi + 0x70]
cmp dword [rdi + 0x7c], eax
jb 0x180023f57
jmp 0x180023f98
mov eax, dword [rdi + 0x7c]
movzx eax, word [rdx + rax*2]
mov word [rdi + rax*2 + 0x88], r12w
add dword [rdi + 0x7c], ebx
cmp dword [rdi + 0x7c], 0x13
jb 0x180023f85
lea rcx, [rdi + 0x68]
lea rax, [rdi + 0x548]
lea r9, [rdi + 0x80]
mov qword [r9], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x308]
mov qword [rsp + 0x28], rax
mov dword [rcx], 7
mov qword [rsp + 0x20], rcx
xor ecx, ecx
lea rdx, [rdi + 0x88]
lea r8d, [rcx + 0x13]
call fcn.180025900
cmp eax, r12d
mov dword [rsp + 0x90], eax
je 0x180023ff7
mov dword [rdi], 0x1b
jmp 0x180023ace
mov r10, qword [rsp + 0x40]
mov dword [rdi + 0x7c], r12d
mov dword [rdi], 0x11
jmp 0x18002425e
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
mov ecx, dword [rdi + 0x68]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
mov dword [rsp + 0x34], eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x18002400b
mov ecx, eax
shr ecx, 0x10
cmp cx, 0x10
jae 0x1800240ab
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x18002408a
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r13d, 0xffffffff
add r15, rbx
add ebp, eax
movzx eax, byte [rsp + 0x35]
cmp esi, eax
jb 0x180024064
movzx ecx, byte [rsp + 0x35]
movzx eax, word [rsp + 0x36]
shr ebp, cl
sub esi, ecx
mov ecx, dword [rdi + 0x7c]
mov word [rdi + rcx*2 + 0x88], ax
add dword [rdi + 0x7c], ebx
jmp 0x18002425e
cmp word [rsp + 0x36], 0x10
jne 0x180024111
movzx edx, byte [rsp + 0x35]
lea r8d, [rdx + 2]
jmp 0x1800240db
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r8d
jb 0x1800240be
mov eax, dword [rdi + 0x7c]
mov ecx, edx
sub esi, edx
shr ebp, cl
cmp eax, r12d
je 0x180024272
mov edx, ebp
add eax, 0xffffffff
shr ebp, 2
movzx r9d, word [rdi + rax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x1800241a1
cmp word [rsp + 0x36], 0x11
movzx r8d, byte [rsp + 0x35]
jne 0x18002415d
lea edx, [r8 + 3]
jmp 0x180024142
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x180024125
mov ecx, r8d
mov eax, 0xfffffffd
shr ebp, cl
mov edx, ebp
and edx, 7
add edx, 3
shr ebp, 3
jmp 0x180024199
lea edx, [r8 + 7]
jmp 0x180024180
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x180024163
mov ecx, r8d
mov eax, 0xfffffff9
shr ebp, cl
mov edx, ebp
and edx, 0x7f
add edx, 0xb
shr ebp, 7
sub eax, r8d
mov r9d, r12d
add esi, eax
mov eax, dword [rdi + 0x7c]
lea ecx, [rdx + rax]
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp ecx, eax
jbe 0x180024259
mov dword [rdi], 0x1b
cmp dword [rdi], 0x1b
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
lea rdx, [0x18002fcb0]
je 0x18002364a
mov r8d, dword [rdi + 0x74]
lea rax, [rdi + 0x548]
lea r12, [rdi + 0x308]
mov qword [rdi + 0x80], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x68]
lea rdx, [rdi + 0x88]
lea r9, [rdi + 0x80]
mov ecx, 1
mov qword [rsp + 0x28], r12
mov dword [rax], 9
mov qword [rsp + 0x20], rax
call fcn.180025900
test eax, eax
mov dword [rsp + 0x90], eax
je 0x18002428d
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 0x1b
jmp 0x180023cab
mov eax, dword [rdi + 0x7c]
add edx, 0xffffffff
mov word [rdi + rax*2 + 0x88], r9w
add dword [rdi + 0x7c], ebx
cmp edx, r12d
jne 0x180024247
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x1800241bb
jmp 0x180024028
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov dword [rdi], 0x1b
jmp 0x180023643
mov rax, qword [rdi + 0x80]
mov r8d, dword [rdi + 0x78]
lea rcx, [rdi + 0x6c]
mov qword [rdi + 0x60], rax
mov eax, dword [rdi + 0x74]
mov dword [rcx], 6
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], rcx
lea r9, [rdi + 0x80]
lea rdx, [rdi + rax*2 + 0x88]
mov ecx, 2
call fcn.180025900
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
xor r12d, r12d
mov dword [rsp + 0x90], eax
cmp eax, r12d
je 0x1800242fb
mov dword [rdi], 0x1b
jmp 0x18002363e
mov dword [rdi], 0x12
mov ebx, 1
cmp r13d, 6
jb 0x180024364
cmp r9d, 0x102
jb 0x180024364
mov qword [r14 + 0x10], r10
mov dword [r14 + 0x18], r9d
mov qword [r14], r15
mov dword [r14 + 8], r13d
mov edx, r8d
mov rcx, r14
mov dword [rdi + 0x40], ebp
mov dword [rdi + 0x44], esi
call fcn.180025da0
mov r10, qword [r14 + 0x10]
mov r9d, dword [r14 + 0x18]
mov r15, qword [r14]
mov r13d, dword [r14 + 8]
mov ebp, dword [rdi + 0x40]
mov esi, dword [rdi + 0x44]
mov r8d, dword [rsp + 0xa8]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0xa0], r9d
jmp 0x180023643
mov ecx, dword [rdi + 0x68]
mov r11, qword [rdi + 0x58]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x1800243b2
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
mov ecx, dword [rdi + 0x68]
add r15, rbx
add ebp, eax
mov eax, ebx
add esi, 8
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x18002437e
cmp al, r12b
je 0x180024478
test al, 0xf0
jne 0x180024478
mov r10d, eax
mov cl, al
mov r9d, ebx
shr r10d, 8
mov edx, eax
mov dword [rsp + 0x34], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
sub r9d, ebx
and r9d, ebp
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x18002446a
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
add r13d, 0xffffffff
add ebp, eax
mov al, dl
add r15, rbx
lea ecx, [r9 + rax]
movzx eax, word [rsp + 0x36]
add esi, 8
shl r8d, cl
mov ecx, r9d
sub r8d, ebx
and r8d, ebp
shr r8d, cl
add r8d, eax
mov rax, qword [rdi + 0x58]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x180024413
movzx ecx, byte [rsp + 0x35]
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 0x10
cmp al, r12b
mov dword [rdi + 0x48], ecx
jne 0x18002449c
mov dword [rdi], 0x17
jmp 0x180023ace
test al, 0x20
jne 0x180023e5f
test al, 0x40
jne 0x180023fec
and eax, 0xf
mov dword [rdi], 0x13
mov dword [rdi + 0x50], eax
mov edx, dword [rdi + 0x50]
cmp edx, r12d
je 0x1800244f7
cmp esi, edx
jae 0x1800244e6
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r13d, 0xffffffff
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x1800244c4
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and eax, ebp
shr ebp, cl
add dword [rdi + 0x48], eax
sub esi, edx
mov dword [rdi], 0x14
mov ecx, dword [rdi + 0x6c]
mov r11, qword [rdi + 0x60]
mov eax, ebx
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov eax, dword [r11 + rcx*4]
jmp 0x18002454b
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
mov ecx, dword [rdi + 0x6c]
add r15, rbx
add ebp, eax
mov eax, ebx
add esi, 8
shl eax, cl
sub eax, ebx
mov ecx, eax
mov eax, ebp
and rcx, rax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + rcx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, esi
ja 0x180024517
test al, 0xf0
jne 0x180024608
mov r10d, eax
mov cl, al
mov r9d, ebx
shr r10d, 8
mov edx, eax
mov dword [rsp + 0x34], eax
movzx r8d, r10b
shr eax, 0x10
add ecx, r8d
shl r9d, cl
mov ecx, r8d
sub r9d, ebx
and r9d, ebp
shr r9d, cl
add r9d, eax
mov eax, dword [r11 + r9*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
movzx ecx, r10b
add r8d, ecx
jmp 0x1800245fa
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
add r13d, 0xffffffff
add ebp, eax
mov al, dl
add r15, rbx
lea ecx, [r9 + rax]
movzx eax, word [rsp + 0x36]
add esi, 8
shl r8d, cl
mov ecx, r9d
sub r8d, ebx
and r8d, ebp
shr r8d, cl
add r8d, eax
mov rax, qword [rdi + 0x60]
mov eax, dword [rax + r8*4]
mov ecx, eax
shr ecx, 8
movzx r8d, cl
add r8d, r9d
cmp r8d, esi
ja 0x1800245a3
movzx ecx, byte [rsp + 0x35]
shr ebp, cl
sub esi, ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
shr ebp, cl
sub esi, ecx
test al, 0x40
jne 0x180023fec
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov ecx, eax
mov dword [rdi], 0x15
shr ecx, 0x10
and eax, 0xf
mov dword [rdi + 0x50], eax
mov dword [rdi + 0x4c], ecx
mov edx, dword [rdi + 0x50]
cmp edx, r12d
je 0x180024684
cmp esi, edx
jae 0x180024673
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
add r13d, 0xffffffff
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x180024651
mov ecx, edx
mov eax, ebx
shl eax, cl
sub eax, ebx
and eax, ebp
shr ebp, cl
add dword [rdi + 0x4c], eax
sub esi, edx
mov eax, dword [rdi + 0x30]
sub eax, r9d
add eax, r8d
cmp dword [rdi + 0x4c], eax
ja 0x180023b31
mov dword [rdi], 0x16
cmp r9d, r12d
je 0x1800248bd
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x1800246d5
sub ecx, eax
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x1800246c4
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x1800246c8
sub eax, ecx
mov edx, eax
mov eax, dword [rdi + 0x48]
add rdx, qword [rdi + 0x38]
cmp ecx, eax
jbe 0x1800246e0
jmp 0x1800246de
mov eax, dword [rdi + 0x48]
mov rdx, r10
sub rdx, rcx
mov ecx, eax
cmp ecx, r9d
cmova ecx, r9d
sub r9d, ecx
sub eax, ecx
mov dword [rdi + 0x48], eax
mov dword [rsp + 0xa0], r9d
mov al, byte [rdx]
add rdx, rbx
mov byte [r10], al
add r10, rbx
add ecx, 0xffffffff
jne 0x1800246f7
cmp dword [rdi + 0x48], r12d
mov qword [rsp + 0x40], r10
lea rdx, [0x18002fcb0]
jne 0x18002364a
mov dword [rdi], 0x12
jmp 0x180023643
sub ecx, 0x17
je 0x18002486c
sub ecx, ebx
je 0x18002475f
sub ecx, ebx
je 0x180024822
sub ecx, ebx
je 0x180024867
sub ecx, ebx
je 0x1800248b5
cmp ecx, ebx
jne 0x18002369f
mov eax, 0xfffffffc
jmp 0x1800236a4
cmp dword [rdi + 8], r12d
je 0x18002481c
jmp 0x180024788
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x18002476b
sub r8d, r9d
add dword [r14 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
cmp r8d, r12d
je 0x1800247d6
mov ecx, dword [rdi + 0x18]
mov eax, r8d
mov rdx, r10
sub rdx, rax
cmp dword [rdi + 0x10], r12d
je 0x1800247b6
call fcn.1800288a4
jmp 0x1800247bb
call fcn.18002a6a4
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
lea rdx, [0x18002fcb0]
mov ecx, ebp
mov eax, ebp
mov r8d, r9d
shl eax, 0x10
and ecx, 0xff00
mov dword [rsp + 0xa8], r9d
add ecx, eax
mov eax, ebp
shr eax, 8
shl ecx, 8
and eax, 0xff00
add ecx, eax
mov eax, ebp
shr eax, 0x18
add ecx, eax
cmp dword [rdi + 0x10], r12d
cmovne ecx, ebp
cmp ecx, dword [rdi + 0x18]
jne 0x180023b82
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x19
cmp dword [rdi + 8], r12d
je 0x180024861
cmp dword [rdi + 0x10], r12d
je 0x180024861
jmp 0x18002484d
cmp r13d, r12d
je 0x1800248bd
movzx eax, byte [r15]
mov ecx, esi
add r13d, 0xffffffff
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180024830
cmp ebp, dword [rdi + 0x1c]
jne 0x180023b82
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x1a
mov r12d, ebx
jmp 0x1800248c5
cmp r9d, r12d
je 0x1800248bd
mov al, byte [rdi + 0x48]
mov byte [r10], al
add r10, rbx
add r9d, 0xffffffff
mov dword [rsp + 0xa0], r9d
mov qword [rsp + 0x40], r10
mov dword [rdi], 0x12
jmp 0x18002364a
mov qword [r14 + 0x10], r10
mov dword [r14 + 0x18], r9d
mov qword [r14], r15
mov dword [r14 + 8], r13d
mov eax, 2
mov dword [rdi + 0x40], ebp
mov dword [rdi + 0x44], esi
jmp 0x1800236a4
mov r12d, 0xfffffffd
jmp 0x1800248c5
mov r12d, dword [rsp + 0x90]
mov rax, qword [rsp + 0x40]
mov ebx, dword [rsp + 0xa8]
mov qword [r14], r15
mov qword [r14 + 0x10], rax
mov eax, dword [rsp + 0xa0]
mov dword [r14 + 8], r13d
mov dword [r14 + 0x18], eax
mov dword [rdi + 0x40], ebp
xor ebp, ebp
cmp dword [rdi + 0x2c], ebp
mov dword [rdi + 0x44], esi
jne 0x1800248ff
cmp dword [rdi], 0x18
jge 0x180024918
cmp ebx, dword [r14 + 0x18]
je 0x180024918
mov edx, ebx
mov rcx, r14
call fcn.1800234b8
cmp eax, ebp
je 0x180024918
mov dword [rdi], 0x1c
jmp 0x180024755
sub ebx, dword [r14 + 0x18]
mov esi, dword [rsp + 0x38]
sub esi, dword [r14 + 8]
add dword [r14 + 0x1c], ebx
add dword [r14 + 0xc], esi
add dword [rdi + 0x1c], ebx
cmp dword [rdi + 8], ebp
je 0x18002495f
cmp ebx, ebp
je 0x18002495f
mov rdx, qword [r14 + 0x10]
mov ecx, dword [rdi + 0x18]
mov eax, ebx
sub rdx, rax
cmp dword [rdi + 0x10], ebp
mov r8d, ebx
je 0x180024953
call fcn.1800288a4
jmp 0x180024958
call fcn.18002a6a4
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov eax, dword [rdi + 4]
mov edx, 0x80
neg eax
mov eax, ebp
sbb ecx, ecx
and ecx, 0x40
cmp dword [rdi], 0xb
cmove eax, edx
add ecx, eax
add ecx, dword [rdi + 0x44]
cmp esi, ebp
mov dword [r14 + 0x38], ecx
jne 0x180024993
cmp ebx, ebp
jne 0x180024993
mov eax, 0xfffffffb
cmp r12d, ebp
cmove r12d, eax
mov eax, r12d
jmp 0x1800236a4