Function at 0x180023a20
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 0x180023b12
mov rdi, qword [rcx + 0x28]
cmp rdi, r12
je 0x180023b12
cmp qword [rcx + 0x10], r12
je 0x180023b12
cmp qword [rcx], r12
jne 0x180023a69
cmp dword [rcx + 8], r12d
jne 0x180023b12
cmp dword [rdi], 0xb
jne 0x180023a74
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
mov r11d, 0x10
mov edx, 7
mov ecx, dword [rdi]
cmp ecx, 0xe
jg 0x1800242f3
je 0x1800240ca
cmp ecx, edx
jg 0x180024051
je 0x180023e58
cmp ecx, r12d
je 0x180023edd
sub ecx, ebx
je 0x180023b4b
sub ecx, ebx
je 0x180023bcf
sub ecx, ebx
je 0x180023c4c
sub ecx, ebx
je 0x180023ca9
sub ecx, ebx
je 0x180023cc3
cmp ecx, ebx
je 0x180023dc2
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 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r11d
jb 0x180023b2f
mov dword [rdi + 0x10], ebp
cmp bpl, 8
jne 0x180024002
test ebp, 0xe000
jne 0x180024002
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x180023b7b
mov eax, ebp
shr eax, 8
and eax, ebx
mov dword [rcx], eax
bt dword [rdi + 0x10], 9
jae 0x180023ba5
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.180028da0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 2
jmp 0x180023bcf
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180023bb3
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023be0
mov dword [rax + 4], ebp
bt dword [rdi + 0x10], 9
jae 0x180023c1c
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.180028da0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 3
mov r11d, 0x10
jmp 0x180023c4c
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r11d
jb 0x180023c30
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x180023c6d
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 0x180023c9d
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.180028da0
mov r11d, 0x10
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 4
bt dword [rdi + 0x10], 0xa
jb 0x180023d2b
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023cbd
mov qword [rax + 0x10], r12
mov dword [rdi], 5
bt dword [rdi + 0x10], 0xa
jae 0x180023db3
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
cmp ebx, r12d
je 0x180023da9
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023d86
mov r9, qword [rax + 0x10]
cmp r9, r12
je 0x180023d86
mov edx, dword [rax + 0x18]
mov ecx, dword [rax + 0x1c]
sub edx, dword [rdi + 0x48]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x180023d74
sub ecx, edx
jmp 0x180023d76
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r11d
jb 0x180023d0f
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], ebp
cmp rax, r12
je 0x180023d3f
mov dword [rax + 0x18], ebp
bt dword [rdi + 0x10], 9
jae 0x180023d69
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.180028da0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
jmp 0x180023cbd
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 0x180023d9e
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.180028da0
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 0x180024d47
mov dword [rdi + 0x48], r12d
mov dword [rdi], 6
mov edx, 7
bt dword [rdi + 0x10], 0xb
jae 0x180023e45
cmp r13d, r12d
je 0x180024d47
mov ebx, r12d
mov r8, r15
xor r9d, r9d
mov rax, qword [rdi + 0x20]
movzx r12d, byte [r8]
inc ebx
inc r8
cmp rax, r9
je 0x180023e05
mov rdx, qword [rax + 0x20]
cmp rdx, r9
je 0x180023e05
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x180023e05
mov byte [rcx + rdx], r12b
inc dword [rdi + 0x48]
cmp r12d, r9d
je 0x180023e0f
cmp ebx, r13d
jb 0x180023ddb
bt dword [rdi + 0x10], 9
jae 0x180023e2a
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.180028da0
xor r9d, r9d
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
cmp r12d, r9d
jne 0x180024d47
xor r12d, r12d
lea edx, [r12 + 7]
jmp 0x180023e52
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180023e52
mov qword [rax + 0x20], r12
mov dword [rdi + 0x48], r12d
mov dword [rdi], edx
bt dword [rdi + 0x10], 0xc
jae 0x18002400d
cmp r13d, r12d
je 0x180024d47
mov ebx, r12d
mov r8, r15
xor r9d, r9d
mov rax, qword [rdi + 0x20]
movzx r12d, byte [r8]
inc ebx
inc r8
cmp rax, r9
je 0x180023e9f
mov rdx, qword [rax + 0x30]
cmp rdx, r9
je 0x180023e9f
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x180023e9f
mov byte [rcx + rdx], r12b
inc dword [rdi + 0x48]
cmp r12d, r9d
je 0x180023ea9
cmp ebx, r13d
jb 0x180023e75
bt dword [rdi + 0x10], 9
jae 0x180023ec4
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.180028da0
xor r9d, r9d
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
cmp r12d, r9d
jne 0x180024d47
xor r12d, r12d
jmp 0x18002401a
cmp dword [rdi + 8], r12d
jne 0x180023f0a
mov dword [rdi], 0xc
jmp 0x180023abe
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r11d
jb 0x180023eee
test byte [rdi + 8], 2
je 0x180023f6e
cmp ebp, 0x8b1f
jne 0x180023f6e
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.180028da0
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.180028da0
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 0x180023ab3
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], r12d
cmp rax, r12
je 0x180023f7f
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], bl
je 0x180024002
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 0x180023ffd
mov eax, ebp
and al, 0xf
cmp al, 8
je 0x180023fbe
mov dword [rdi], 0x1b
jmp 0x180023ab9
shr ebp, 4
add esi, 0xfffffffc
mov ecx, ebp
and ecx, 0xf
add ecx, 8
cmp ecx, dword [rdi + 0x28]
ja 0x180023fb3
mov eax, ebx
xor r8d, r8d
xor edx, edx
shl eax, cl
xor ecx, ecx
mov dword [rdi + 0x14], eax
call fcn.18002ae0c
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 0x180023f4e
mov edx, 7
mov dword [rdi], 0x1b
jmp 0x180023abe
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x18002401a
mov qword [rax + 0x30], r12
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov ebx, 1
mov dword [rdi], 8
lea edx, [rbx + 6]
lea r11d, [rbx + 0xf]
bt dword [rdi + 0x10], 9
jae 0x1800242ac
jmp 0x180024295
sub ecx, 8
je 0x180024041
sub ecx, ebx
je 0x180024157
sub ecx, ebx
je 0x180024190
sub ecx, ebx
je 0x1800241d1
sub ecx, ebx
je 0x1800241d1
cmp ecx, ebx
jne 0x180023b12
mov ecx, esi
and ecx, edx
shr ebp, cl
sub esi, ecx
jmp 0x1800240a4
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180024088
mov eax, ebp
movzx ecx, bp
not eax
shr eax, 0x10
cmp ecx, eax
jne 0x180024002
mov dword [rdi + 0x48], ecx
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0xe
mov r12d, dword [rdi + 0x48]
xor ecx, ecx
cmp r12d, ecx
je 0x1800242e5
cmp r12d, r13d
cmova r12d, r13d
cmp r12d, r9d
cmova r12d, r9d
cmp r12d, ecx
je 0x180024d47
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 0x180023aae
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x18002413b
mov ecx, ebp
mov eax, ebp
mov edx, 0xff00
shl eax, 0x10
and ecx, edx
mov esi, r12d
add ecx, eax
mov eax, ebp
shr ebp, 0x18
shr eax, 8
shl ecx, 8
and eax, edx
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 0x180024d20
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18002ae0c
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov edx, 7
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xb
lea r11d, [rdx + 9]
cmp dword [rdi + 4], r12d
je 0x180024206
mov ecx, esi
mov dword [rdi], 0x18
and ecx, edx
shr ebp, cl
sub esi, ecx
jmp 0x180023abe
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x1800241ea
mov eax, ebp
shr ebp, 1
dec esi
and eax, ebx
mov dword [rdi + 4], eax
mov eax, ebp
and eax, 3
cmp eax, r12d
je 0x180024268
sub eax, ebx
je 0x18002423c
sub eax, ebx
je 0x180024234
cmp eax, ebx
jne 0x18002426e
mov dword [rdi], 0x1b
jmp 0x18002426e
mov dword [rdi], 0xf
jmp 0x18002426e
lea rax, [0x180030510]
mov dword [rdi + 0x68], 9
mov dword [rdi + 0x6c], 5
mov qword [rdi + 0x58], rax
lea rax, [0x180030d10]
mov dword [rdi], 0x12
mov qword [rdi + 0x60], rax
jmp 0x18002426e
mov dword [rdi], 0xd
shr ebp, 2
add esi, 0xfffffffe
jmp 0x180023abe
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r11d
jb 0x180024279
movzx eax, word [rdi + 0x18]
cmp ebp, eax
jne 0x180024002
mov ebp, r12d
mov esi, r12d
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x1800242c7
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.180028da0
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xb
jmp 0x180023f54
mov dword [rdi], 0xb
xor r12d, r12d
jmp 0x180023abe
cmp ecx, 0x16
jg 0x180024bb3
je 0x180024b31
sub ecx, 0xf
je 0x180024358
sub ecx, ebx
je 0x1800243ad
sub ecx, ebx
je 0x180024485
sub ecx, ebx
je 0x180024793
sub ecx, ebx
je 0x180024947
sub ecx, ebx
je 0x18002498b
cmp ecx, ebx
jne 0x180023b12
jmp 0x180024adb
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0xe
jb 0x18002433c
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
mov dword [rdi + 0x74], ecx
mov dword [rdi + 0x78], edx
mov dword [rdi + 0x70], eax
cmp ecx, 0x11e
ja 0x180023fb3
cmp edx, 0x1e
ja 0x180023fb3
mov dword [rdi + 0x7c], r12d
mov dword [rdi], r11d
mov edx, 7
lea r8, [0x180030d90]
mov eax, dword [rdi + 0x70]
cmp dword [rdi + 0x7c], eax
jae 0x180024414
jmp 0x1800243da
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 3
jb 0x1800243be
mov eax, dword [rdi + 0x7c]
movzx ecx, bp
shr ebp, 3
movzx eax, word [r8 + rax*2]
and cx, dx
mov word [rdi + rax*2 + 0x88], cx
add dword [rdi + 0x7c], ebx
add esi, 0xfffffffd
jmp 0x1800243b4
mov eax, dword [rdi + 0x7c]
movzx ecx, word [r8 + rax*2]
mov word [rdi + rcx*2 + 0x88], r12w
add dword [rdi + 0x7c], ebx
cmp dword [rdi + 0x7c], 0x13
jb 0x180024400
lea rcx, [rdi + 0x68]
lea rax, [rdi + 0x548]
lea r9, [rdi + 0x80]
mov dword [rcx], edx
mov qword [r9], rax
mov qword [rdi + 0x58], rax
lea rax, [rdi + 0x308]
lea rdx, [rdi + 0x88]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
xor ecx, ecx
lea r8d, [rcx + 0x13]
call fcn.180025310
mov dword [rsp + 0x90], eax
cmp eax, r12d
je 0x18002446f
mov dword [rdi], 0x1b
jmp 0x180023f54
mov r10, qword [rsp + 0x40]
mov edx, 0x11
mov dword [rdi + 0x7c], r12d
lea r11d, [rdx - 1]
mov dword [rdi], edx
jmp 0x18002448a
mov edx, 0x11
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x180024644
jmp 0x1800244b7
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
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 0x18002449b
mov ecx, eax
shr ecx, 0x10
cmp cx, r11w
jae 0x180024539
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x180024518
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
dec r13d
add r15, rbx
add ebp, eax
movzx eax, byte [rsp + 0x35]
cmp esi, eax
jb 0x1800244f3
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 0x1800246e6
cmp word [rsp + 0x36], r11w
jne 0x18002459d
movzx edx, byte [rsp + 0x35]
lea r8d, [rdx + 2]
jmp 0x180024568
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, r8d
jb 0x18002454c
mov eax, dword [rdi + 0x7c]
mov ecx, edx
sub esi, edx
shr ebp, cl
cmp eax, r12d
je 0x1800246ff
mov edx, ebp
dec eax
shr ebp, 2
movzx r9d, word [rdi + rax*2 + 0x88]
and edx, 3
add edx, 3
add esi, 0xfffffffe
jmp 0x18002462a
movzx r8d, byte [rsp + 0x35]
cmp word [rsp + 0x36], dx
jne 0x1800245e7
lea edx, [r8 + 3]
jmp 0x1800245cc
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x1800245b0
mov ecx, r8d
mov eax, 0xfffffffd
shr ebp, cl
mov edx, ebp
and edx, 7
add edx, 3
shr ebp, 3
jmp 0x180024622
lea edx, [r8 + 7]
jmp 0x180024609
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, edx
jb 0x1800245ed
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 0x1800246e1
mov dword [rdi], 0x1b
cmp dword [rdi], 0x1b
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov edx, 7
je 0x180023abe
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.180025310
xor ecx, ecx
mov dword [rsp + 0x90], eax
cmp eax, ecx
je 0x18002471a
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 0x1b
jmp 0x18002412b
mov eax, dword [rdi + 0x7c]
dec edx
mov word [rdi + rax*2 + 0x88], r9w
add dword [rdi + 0x7c], ebx
cmp edx, r12d
jne 0x1800246d0
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x180024644
mov edx, 0x11
jmp 0x1800244b7
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov dword [rdi], 0x1b
jmp 0x180023ab9
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.180025310
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 0x180024788
mov dword [rdi], 0x1b
jmp 0x180023aae
mov dword [rdi], 0x12
mov ebx, 1
cmp r13d, 6
jb 0x1800247f1
cmp r9d, 0x102
jb 0x1800247f1
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.180024edc
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 0x180023ab3
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 0x18002483e
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
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 0x18002480b
cmp al, r12b
je 0x180024904
test al, 0xf0
jne 0x180024904
mov r10d, eax
movzx ecx, 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 0x1800248f6
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
movzx ecx, dl
add ecx, r9d
add ebp, eax
movzx eax, word [rsp + 0x36]
shl r8d, cl
mov ecx, r9d
dec r13d
sub r8d, ebx
add r15, rbx
add esi, 8
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 0x1800248a0
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
mov dword [rdi + 0x48], ecx
cmp al, r12b
jne 0x180024928
mov dword [rdi], 0x17
jmp 0x180023f54
test al, 0x20
jne 0x1800242da
test al, 0x40
jne 0x180024464
movzx ecx, al
mov dword [rdi], 0x13
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
cmp edx, r12d
je 0x180024985
cmp esi, edx
jae 0x180024974
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
dec r13d
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x180024953
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 0x1800249d8
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
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 0x1800249a5
test al, 0xf0
jne 0x180024a95
mov r10d, eax
movzx ecx, 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 0x180024a87
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
movzx r9d, byte [rsp + 0x35]
mov ecx, esi
shl eax, cl
mov r8d, ebx
movzx ecx, dl
add ecx, r9d
add ebp, eax
movzx eax, word [rsp + 0x36]
shl r8d, cl
mov ecx, r9d
dec r13d
sub r8d, ebx
add r15, rbx
add esi, 8
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 0x180024a31
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 0x180024464
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov ecx, eax
mov dword [rdi], 0x15
mov r11d, 0x10
shr ecx, 0x10
mov dword [rdi + 0x4c], ecx
movzx ecx, al
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
cmp edx, r12d
je 0x180024b19
cmp esi, edx
jae 0x180024b08
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
add esi, 8
shl eax, cl
dec r13d
add r15, rbx
add ebp, eax
cmp esi, dword [rdi + 0x50]
jb 0x180024ae7
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 0x180023fb3
mov dword [rdi], 0x16
cmp r9d, r12d
je 0x180024d47
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x180024b6a
sub ecx, eax
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x180024b59
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x180024b5d
sub eax, ecx
mov edx, eax
mov eax, dword [rdi + 0x48]
add rdx, qword [rdi + 0x38]
cmp ecx, eax
jbe 0x180024b75
jmp 0x180024b73
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 0x180024b8c
mov qword [rsp + 0x40], r10
lea edx, [rcx + 7]
cmp dword [rdi + 0x48], r12d
jne 0x180023abe
jmp 0x180024d15
sub ecx, 0x17
je 0x180024cf7
sub ecx, ebx
je 0x180024bea
sub ecx, ebx
je 0x180024cae
sub ecx, ebx
je 0x180024cf2
sub ecx, ebx
je 0x180024d3f
cmp ecx, ebx
jne 0x180023b12
mov eax, 0xfffffffc
jmp 0x180023b17
cmp dword [rdi + 8], r12d
je 0x180024ca8
jmp 0x180024c12
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180024bf6
sub r8d, r9d
add dword [r14 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
cmp r8d, r12d
je 0x180024c62
mov ecx, dword [rdi + 0x18]
mov eax, r8d
mov rdx, r10
sub rdx, rax
cmp dword [rdi + 0x10], r12d
je 0x180024c40
call fcn.180028da0
jmp 0x180024c45
call fcn.18002ae0c
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov edx, 7
mov dword [rdi + 0x18], eax
lea r11d, [rdx + 9]
mov dword [r14 + 0x3c], eax
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 0x180024002
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x19
cmp dword [rdi + 8], r12d
je 0x180024cec
cmp dword [rdi + 0x10], r12d
je 0x180024cec
jmp 0x180024cd8
cmp r13d, r12d
je 0x180024d47
movzx eax, byte [r15]
mov ecx, esi
dec r13d
shl eax, cl
add r15, rbx
add ebp, eax
add esi, 8
cmp esi, 0x20
jb 0x180024cbc
cmp ebp, dword [rdi + 0x1c]
jne 0x180024002
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x1a
mov r12d, ebx
jmp 0x180024d4f
cmp r9d, r12d
je 0x180024d47
mov al, byte [rdi + 0x48]
mov byte [r10], al
add r10, rbx
dec r9d
mov dword [rsp + 0xa0], r9d
mov qword [rsp + 0x40], r10
mov dword [rdi], 0x12
jmp 0x180023abe
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 0x180023b17
mov r12d, 0xfffffffd
jmp 0x180024d4f
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
mov dword [rdi + 0x44], esi
cmp dword [rdi + 0x2c], ebp
jne 0x180024d89
cmp dword [rdi], 0x18
jge 0x180024da2
cmp ebx, dword [r14 + 0x18]
je 0x180024da2
mov edx, ebx
mov rcx, r14
call fcn.180023928
cmp eax, ebp
je 0x180024da2
mov dword [rdi], 0x1c
jmp 0x180024be0
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 0x180024de9
cmp ebx, ebp
je 0x180024de9
mov rdx, qword [r14 + 0x10]
mov ecx, dword [rdi + 0x18]
mov eax, ebx
sub rdx, rax
mov r8d, ebx
cmp dword [rdi + 0x10], ebp
je 0x180024ddd
call fcn.180028da0
jmp 0x180024de2
call fcn.18002ae0c
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]
mov dword [r14 + 0x38], ecx
cmp esi, ebp
jne 0x180024e1d
cmp ebx, ebp
jne 0x180024e1d
mov eax, 0xfffffffb
cmp r12d, ebp
cmove r12d, eax
mov eax, r12d
jmp 0x180023b17