Function at 0x180025f40
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 0x180026032
mov rdi, qword [rcx + 0x28]
cmp rdi, r12
je 0x180026032
cmp qword [rcx + 0x10], r12
je 0x180026032
cmp qword [rcx], r12
jne 0x180025f89
cmp dword [rcx + 8], r12d
jne 0x180026032
cmp dword [rdi], 0xb
jne 0x180025f94
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 0x180026813
je 0x1800265ea
cmp ecx, edx
jg 0x180026571
je 0x180026378
cmp ecx, r12d
je 0x1800263fd
sub ecx, ebx
je 0x18002606b
sub ecx, ebx
je 0x1800260ef
sub ecx, ebx
je 0x18002616c
sub ecx, ebx
je 0x1800261c9
sub ecx, ebx
je 0x1800261e3
cmp ecx, ebx
je 0x1800262e2
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 0x180027267
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 0x18002604f
mov dword [rdi + 0x10], ebp
cmp bpl, 8
jne 0x180026522
test ebp, 0xe000
jne 0x180026522
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x18002609b
mov eax, ebp
shr eax, 8
and eax, ebx
mov dword [rcx], eax
bt dword [rdi + 0x10], 9
jae 0x1800260c5
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.18002b2c0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 2
jmp 0x1800260ef
cmp r13d, r12d
je 0x180027267
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 0x1800260d3
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180026100
mov dword [rax + 4], ebp
bt dword [rdi + 0x10], 9
jae 0x18002613c
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.18002b2c0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 3
mov r11d, 0x10
jmp 0x18002616c
cmp r13d, r12d
je 0x180027267
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 0x180026150
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x18002618d
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 0x1800261bd
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.18002b2c0
mov r11d, 0x10
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 4
bt dword [rdi + 0x10], 0xa
jb 0x18002624b
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x1800261dd
mov qword [rax + 0x10], r12
mov dword [rdi], 5
bt dword [rdi + 0x10], 0xa
jae 0x1800262d3
mov ebx, dword [rdi + 0x48]
cmp ebx, r13d
cmova ebx, r13d
cmp ebx, r12d
je 0x1800262c9
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x1800262a6
mov r9, qword [rax + 0x10]
cmp r9, r12
je 0x1800262a6
mov edx, dword [rax + 0x18]
mov ecx, dword [rax + 0x1c]
sub edx, dword [rdi + 0x48]
lea eax, [rbx + rdx]
cmp eax, ecx
jbe 0x180026294
sub ecx, edx
jmp 0x180026296
cmp r13d, r12d
je 0x180027267
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 0x18002622f
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x48], ebp
cmp rax, r12
je 0x18002625f
mov dword [rax + 0x18], ebp
bt dword [rdi + 0x10], 9
jae 0x180026289
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.18002b2c0
mov dword [rdi + 0x18], eax
mov ebp, r12d
mov esi, r12d
jmp 0x1800261dd
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 0x1800262be
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.18002b2c0
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 0x180027267
mov dword [rdi + 0x48], r12d
mov dword [rdi], 6
mov edx, 7
bt dword [rdi + 0x10], 0xb
jae 0x180026365
cmp r13d, r12d
je 0x180027267
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 0x180026325
mov rdx, qword [rax + 0x20]
cmp rdx, r9
je 0x180026325
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x28]
jae 0x180026325
mov byte [rcx + rdx], r12b
inc dword [rdi + 0x48]
cmp r12d, r9d
je 0x18002632f
cmp ebx, r13d
jb 0x1800262fb
bt dword [rdi + 0x10], 9
jae 0x18002634a
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.18002b2c0
xor r9d, r9d
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
cmp r12d, r9d
jne 0x180027267
xor r12d, r12d
lea edx, [r12 + 7]
jmp 0x180026372
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x180026372
mov qword [rax + 0x20], r12
mov dword [rdi + 0x48], r12d
mov dword [rdi], edx
bt dword [rdi + 0x10], 0xc
jae 0x18002652d
cmp r13d, r12d
je 0x180027267
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 0x1800263bf
mov rdx, qword [rax + 0x30]
cmp rdx, r9
je 0x1800263bf
mov ecx, dword [rdi + 0x48]
cmp ecx, dword [rax + 0x38]
jae 0x1800263bf
mov byte [rcx + rdx], r12b
inc dword [rdi + 0x48]
cmp r12d, r9d
je 0x1800263c9
cmp ebx, r13d
jb 0x180026395
bt dword [rdi + 0x10], 9
jae 0x1800263e4
mov ecx, dword [rdi + 0x18]
mov r8d, ebx
mov rdx, r15
call fcn.18002b2c0
xor r9d, r9d
mov dword [rdi + 0x18], eax
mov eax, ebx
sub r13d, ebx
add r15, rax
cmp r12d, r9d
jne 0x180027267
xor r12d, r12d
jmp 0x18002653a
cmp dword [rdi + 8], r12d
jne 0x18002642a
mov dword [rdi], 0xc
jmp 0x180025fde
cmp r13d, r12d
je 0x180027267
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 0x18002640e
test byte [rdi + 8], 2
je 0x18002648e
cmp ebp, 0x8b1f
jne 0x18002648e
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18002b2c0
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.18002b2c0
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 0x180025fd3
mov rax, qword [rdi + 0x20]
mov dword [rdi + 0x10], r12d
cmp rax, r12
je 0x18002649f
or dword [rax + 0x40], 0xffffffff
test byte [rdi + 8], bl
je 0x180026522
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 0x18002651d
mov eax, ebp
and al, 0xf
cmp al, 8
je 0x1800264de
mov dword [rdi], 0x1b
jmp 0x180025fd9
shr ebp, 4
add esi, 0xfffffffc
mov ecx, ebp
and ecx, 0xf
add ecx, 8
cmp ecx, dword [rdi + 0x28]
ja 0x1800264d3
mov eax, ebx
xor r8d, r8d
xor edx, edx
shl eax, cl
xor ecx, ecx
mov dword [rdi + 0x14], eax
call fcn.18002d38c
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 0x18002646e
mov edx, 7
mov dword [rdi], 0x1b
jmp 0x180025fde
mov rax, qword [rdi + 0x20]
cmp rax, r12
je 0x18002653a
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 0x1800267cc
jmp 0x1800267b5
sub ecx, 8
je 0x180026561
sub ecx, ebx
je 0x180026677
sub ecx, ebx
je 0x1800266b0
sub ecx, ebx
je 0x1800266f1
sub ecx, ebx
je 0x1800266f1
cmp ecx, ebx
jne 0x180026032
mov ecx, esi
and ecx, edx
shr ebp, cl
sub esi, ecx
jmp 0x1800265c4
cmp r13d, r12d
je 0x180027267
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 0x1800265a8
mov eax, ebp
movzx ecx, bp
not eax
shr eax, 0x10
cmp ecx, eax
jne 0x180026522
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 0x180026805
cmp r12d, r13d
cmova r12d, r13d
cmp r12d, r9d
cmova r12d, r9d
cmp r12d, ecx
je 0x180027267
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 0x180025fce
cmp r13d, r12d
je 0x180027267
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 0x18002665b
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 0x180027240
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.18002d38c
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 0x180026726
mov ecx, esi
mov dword [rdi], 0x18
and ecx, edx
shr ebp, cl
sub esi, ecx
jmp 0x180025fde
cmp r13d, r12d
je 0x180027267
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 0x18002670a
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 0x180026788
sub eax, ebx
je 0x18002675c
sub eax, ebx
je 0x180026754
cmp eax, ebx
jne 0x18002678e
mov dword [rdi], 0x1b
jmp 0x18002678e
mov dword [rdi], 0xf
jmp 0x18002678e
lea rax, [0x180032560]
mov dword [rdi + 0x68], 9
mov dword [rdi + 0x6c], 5
mov qword [rdi + 0x58], rax
lea rax, [0x180032d60]
mov dword [rdi], 0x12
mov qword [rdi + 0x60], rax
jmp 0x18002678e
mov dword [rdi], 0xd
shr ebp, 2
add esi, 0xfffffffe
jmp 0x180025fde
cmp r13d, r12d
je 0x180027267
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 0x180026799
movzx eax, word [rdi + 0x18]
cmp ebp, eax
jne 0x180026522
mov ebp, r12d
mov esi, r12d
mov rcx, qword [rdi + 0x20]
cmp rcx, r12
je 0x1800267e7
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.18002b2c0
mov dword [rdi + 0x18], eax
mov dword [r14 + 0x3c], eax
mov dword [rdi], 0xb
jmp 0x180026474
mov dword [rdi], 0xb
xor r12d, r12d
jmp 0x180025fde
cmp ecx, 0x16
jg 0x1800270d3
je 0x180027051
sub ecx, 0xf
je 0x180026878
sub ecx, ebx
je 0x1800268cd
sub ecx, ebx
je 0x1800269a5
sub ecx, ebx
je 0x180026cb3
sub ecx, ebx
je 0x180026e67
sub ecx, ebx
je 0x180026eab
cmp ecx, ebx
jne 0x180026032
jmp 0x180026ffb
cmp r13d, r12d
je 0x180027267
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 0x18002685c
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 0x1800264d3
cmp edx, 0x1e
ja 0x1800264d3
mov dword [rdi + 0x7c], r12d
mov dword [rdi], r11d
mov edx, 7
lea r8, [0x180032368]
mov eax, dword [rdi + 0x70]
cmp dword [rdi + 0x7c], eax
jae 0x180026934
jmp 0x1800268fa
cmp r13d, r12d
je 0x180027267
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 0x1800268de
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 0x1800268d4
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 0x180026920
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.180027830
mov dword [rsp + 0x90], eax
cmp eax, r12d
je 0x18002698f
mov dword [rdi], 0x1b
jmp 0x180026474
mov r10, qword [rsp + 0x40]
mov edx, 0x11
mov dword [rdi + 0x7c], r12d
lea r11d, [rdx - 1]
mov dword [rdi], edx
jmp 0x1800269aa
mov edx, 0x11
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x180026b64
jmp 0x1800269d7
cmp r13d, r12d
je 0x180027267
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 0x1800269bb
mov ecx, eax
shr ecx, 0x10
cmp cx, r11w
jae 0x180026a59
shr eax, 8
movzx ecx, al
cmp esi, ecx
jae 0x180026a38
cmp r13d, r12d
je 0x180027267
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 0x180026a13
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 0x180026c06
cmp word [rsp + 0x36], r11w
jne 0x180026abd
movzx edx, byte [rsp + 0x35]
lea r8d, [rdx + 2]
jmp 0x180026a88
cmp r13d, r12d
je 0x180027267
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 0x180026a6c
mov eax, dword [rdi + 0x7c]
mov ecx, edx
sub esi, edx
shr ebp, cl
cmp eax, r12d
je 0x180026c1f
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 0x180026b4a
movzx r8d, byte [rsp + 0x35]
cmp word [rsp + 0x36], dx
jne 0x180026b07
lea edx, [r8 + 3]
jmp 0x180026aec
cmp r13d, r12d
je 0x180027267
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 0x180026ad0
mov ecx, r8d
mov eax, 0xfffffffd
shr ebp, cl
mov edx, ebp
and edx, 7
add edx, 3
shr ebp, 3
jmp 0x180026b42
lea edx, [r8 + 7]
jmp 0x180026b29
cmp r13d, r12d
je 0x180027267
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 0x180026b0d
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 0x180026c01
mov dword [rdi], 0x1b
cmp dword [rdi], 0x1b
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov edx, 7
je 0x180025fde
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.180027830
xor ecx, ecx
mov dword [rsp + 0x90], eax
cmp eax, ecx
je 0x180026c3a
mov r9d, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x40]
mov dword [rdi], 0x1b
jmp 0x18002664b
mov eax, dword [rdi + 0x7c]
dec edx
mov word [rdi + rax*2 + 0x88], r9w
add dword [rdi + 0x7c], ebx
cmp edx, r12d
jne 0x180026bf0
mov eax, dword [rdi + 0x78]
add eax, dword [rdi + 0x74]
cmp dword [rdi + 0x7c], eax
jae 0x180026b64
mov edx, 0x11
jmp 0x1800269d7
mov r8d, dword [rsp + 0xa8]
mov r9d, dword [rsp + 0xa0]
mov dword [rdi], 0x1b
jmp 0x180025fd9
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.180027830
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 0x180026ca8
mov dword [rdi], 0x1b
jmp 0x180025fce
mov dword [rdi], 0x12
mov ebx, 1
cmp r13d, 6
jb 0x180026d11
cmp r9d, 0x102
jb 0x180026d11
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.1800273fc
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 0x180025fd3
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 0x180026d5e
cmp r13d, r12d
je 0x180027267
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 0x180026d2b
cmp al, r12b
je 0x180026e24
test al, 0xf0
jne 0x180026e24
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 0x180026e16
cmp r13d, r12d
je 0x180027267
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 0x180026dc0
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 0x180026e48
mov dword [rdi], 0x17
jmp 0x180026474
test al, 0x20
jne 0x1800267fa
test al, 0x40
jne 0x180026984
movzx ecx, al
mov dword [rdi], 0x13
and ecx, 0xf
mov dword [rdi + 0x50], ecx
mov edx, dword [rdi + 0x50]
cmp edx, r12d
je 0x180026ea5
cmp esi, edx
jae 0x180026e94
cmp r13d, r12d
je 0x180027267
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 0x180026e73
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 0x180026ef8
cmp r13d, r12d
je 0x180027267
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 0x180026ec5
test al, 0xf0
jne 0x180026fb5
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 0x180026fa7
cmp r13d, r12d
je 0x180027267
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 0x180026f51
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 0x180026984
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 0x180027039
cmp esi, edx
jae 0x180027028
cmp r13d, r12d
je 0x180027267
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 0x180027007
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 0x1800264d3
mov dword [rdi], 0x16
cmp r9d, r12d
je 0x180027267
mov ecx, dword [rdi + 0x4c]
mov eax, r8d
sub eax, r9d
cmp ecx, eax
jbe 0x18002708a
sub ecx, eax
mov eax, dword [rdi + 0x34]
cmp ecx, eax
jbe 0x180027079
mov edx, dword [rdi + 0x2c]
sub ecx, eax
sub edx, ecx
jmp 0x18002707d
sub eax, ecx
mov edx, eax
mov eax, dword [rdi + 0x48]
add rdx, qword [rdi + 0x38]
cmp ecx, eax
jbe 0x180027095
jmp 0x180027093
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 0x1800270ac
mov qword [rsp + 0x40], r10
lea edx, [rcx + 7]
cmp dword [rdi + 0x48], r12d
jne 0x180025fde
jmp 0x180027235
sub ecx, 0x17
je 0x180027217
sub ecx, ebx
je 0x18002710a
sub ecx, ebx
je 0x1800271ce
sub ecx, ebx
je 0x180027212
sub ecx, ebx
je 0x18002725f
cmp ecx, ebx
jne 0x180026032
mov eax, 0xfffffffc
jmp 0x180026037
cmp dword [rdi + 8], r12d
je 0x1800271c8
jmp 0x180027132
cmp r13d, r12d
je 0x180027267
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 0x180027116
sub r8d, r9d
add dword [r14 + 0x1c], r8d
add dword [rdi + 0x1c], r8d
cmp r8d, r12d
je 0x180027182
mov ecx, dword [rdi + 0x18]
mov eax, r8d
mov rdx, r10
sub rdx, rax
cmp dword [rdi + 0x10], r12d
je 0x180027160
call fcn.18002b2c0
jmp 0x180027165
call fcn.18002d38c
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 0x180026522
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x19
cmp dword [rdi + 8], r12d
je 0x18002720c
cmp dword [rdi + 0x10], r12d
je 0x18002720c
jmp 0x1800271f8
cmp r13d, r12d
je 0x180027267
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 0x1800271dc
cmp ebp, dword [rdi + 0x1c]
jne 0x180026522
mov ebp, r12d
mov esi, r12d
mov dword [rdi], 0x1a
mov r12d, ebx
jmp 0x18002726f
cmp r9d, r12d
je 0x180027267
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 0x180025fde
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 0x180026037
mov r12d, 0xfffffffd
jmp 0x18002726f
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 0x1800272a9
cmp dword [rdi], 0x18
jge 0x1800272c2
cmp ebx, dword [r14 + 0x18]
je 0x1800272c2
mov edx, ebx
mov rcx, r14
call fcn.180025e48
cmp eax, ebp
je 0x1800272c2
mov dword [rdi], 0x1c
jmp 0x180027100
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 0x180027309
cmp ebx, ebp
je 0x180027309
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 0x1800272fd
call fcn.18002b2c0
jmp 0x180027302
call fcn.18002d38c
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 0x18002733d
cmp ebx, ebp
jne 0x18002733d
mov eax, 0xfffffffb
cmp r12d, ebp
cmove r12d, eax
mov eax, r12d
jmp 0x180026037