Function at 0x180024c30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
sub rsp, 0x100
mov rbx, rcx
mov ecx, dword [rcx + 0x754]
cmp dword [rbx + 0x750], ecx
je 0x180024c7f
lea r9, [rcx + rcx*2]
add r9, r9
mov edx, dword [rbx + r9*8 + 0x77c]
mov eax, edx
sub eax, ecx
mov ecx, dword [rbx + r9*8 + 0x780]
mov dword [rbx + 0x754], edx
mov dword [r8], ecx
add rsp, 0x100
pop rbx
ret
xor eax, eax
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xc8], r15
mov dword [rbx + 0x750], eax
mov dword [rbx + 0x754], eax
cmp dword [rbx + 0x331fc], eax
jne 0x180024cda
lea rdx, [rsp + 0x110]
mov rcx, rbx
call fcn.180024950
mov r14d, dword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov dword [rsp + 0x110], r14d
mov r15d, eax
jmp 0x180024cf0
mov r14d, dword [rbx + 0x75c]
mov r15d, dword [rbx + 0x758]
mov dword [rsp + 0x110], r14d
mov edi, dword [rbx + 0x760]
cmp edi, 2
jae 0x180024d0c
mov dword [r8], 0xffffffff
mov eax, 1
jmp 0x1800264e9
mov rcx, qword [rbx + 0x30]
mov eax, 0x111
mov qword [rsp + 0xf8], rbp
cmp edi, eax
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xe0], r12
cmova edi, eax
mov qword [rsp + 0xd8], r13
call qword [rbx + 0x18]
movzx r12d, byte [rax - 1]
lea r11, [rax - 1]
xor r13d, r13d
xor r10d, r10d
xor r9d, r9d
lea rsi, [rbx + 0x33200]
xor ebp, ebp
nop dword [rax + rax]
mov eax, dword [rsi]
mov r8, r11
lea ecx, [rax + 1]
mov dword [rsp + r9 + 0x50], eax
sub r8, rcx
cmp r12b, byte [r8]
jne 0x180024dbb
movzx eax, byte [r8 + 1]
cmp byte [r11 + 1], al
jne 0x180024dbb
mov edx, 2
cmp edi, edx
jbe 0x180024da2
lea rcx, [r11 + 2]
sub r8, r11
movzx eax, byte [rcx + r8]
cmp byte [rcx], al
jne 0x180024da2
inc edx
inc rcx
cmp edx, edi
jb 0x180024d90
mov dword [rsp + r9 + 0x90], edx
cmp edx, dword [rsp + rbp + 0x90]
jbe 0x180024dc7
mov r13d, r10d
mov rbp, r9
jmp 0x180024dc7
mov dword [rsp + r9 + 0x90], 0
inc r10d
add r9, 4
add rsi, 4
cmp r10d, 4
jb 0x180024d60
mov ecx, dword [rbx + 0x331f8]
mov eax, r13d
mov ebp, dword [rsp + rax*4 + 0x90]
cmp ebp, ecx
jb 0x180024e12
mov rdx, qword [rsp + 0x120]
mov dword [rdx], r13d
lea edx, [rbp - 1]
test edx, edx
je 0x180024e0b
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x331fc], edx
call qword [rbx + 0x28]
mov eax, ebp
jmp 0x1800264c9
cmp r15d, ecx
jb 0x180024e4c
mov rdx, qword [rsp + 0x120]
lea eax, [r14 - 1]
mov eax, dword [rbx + rax*4 + 0x32964]
add eax, 4
mov dword [rdx], eax
lea edx, [r15 - 1]
test edx, edx
je 0x180024e44
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x331fc], edx
call qword [rbx + 0x28]
mov eax, r15d
jmp 0x1800264c9
mov ecx, dword [rsp + 0x50]
mov rax, r11
inc ecx
sub rax, rcx
movzx esi, byte [rax]
cmp r15d, 2
jae 0x180024e83
cmp r12b, sil
je 0x180024e83
cmp ebp, 2
jae 0x180024e83
mov rdx, qword [rsp + 0x120]
mov eax, 1
mov dword [rdx], 0xffffffff
jmp 0x1800264c9
mov edi, dword [rbx + 0x33210]
mov edx, dword [rbx + 0x33e5c]
mov r10d, dword [rsp + 0x118]
mov eax, dword [rbx + 0x33e68]
mov r13d, dword [rbx + 0x33e6c]
mov ecx, 8
sub cl, dl
and eax, r10d
mov dword [rbx + 0x768], edi
movzx r8d, byte [r11 - 1]
and r13d, r10d
shr r8d, cl
mov ecx, edx
shl eax, cl
add r8d, eax
mov rax, qword [rbx + 0x33e70]
lea ecx, [r8 + r8*2]
shl ecx, 8
lea rcx, [rax + rcx*2]
cmp edi, 7
jb 0x180024ef6
lea r9, [rbx + 0x32764]
movzx r8d, sil
movzx edx, r12b
call fcn.180024330
mov r11d, eax
jmp 0x180024f09
lea r8, [rbx + 0x32764]
movzx edx, r12b
call fcn.1800242e0
mov r11d, eax
xor r10d, r10d
mov rcx, rdi
mov r8d, r13d
shl rcx, 4
add rcx, r8
movzx eax, word [rbx + rcx*2 + 0x33e78]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
mov dword [rbx + 0x7b0], 0xffffffff
mov dword [rbx + 0x79c], r10d
lea r9d, [r11 + rax]
mov dword [rbx + 0x794], r9d
movzx eax, word [rbx + rcx*2 + 0x33e78]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rax*4 + 0x32764]
movzx eax, word [rbx + rdi*2 + 0x33ff8]
xor rax, 0x7f0
mov dword [rsp + 0x44], ecx
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
lea r14d, [rcx + rax]
cmp sil, r12b
jne 0x180024fd3
mov rax, rdi
shl rax, 4
add rax, r8
movzx ecx, word [rbx + rax*2 + 0x34058]
movzx eax, word [rbx + rdi*2 + 0x34010]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r14d
cmp edx, r9d
jae 0x180024fd3
mov dword [rbx + 0x794], edx
mov dword [rbx + 0x7b0], r10d
mov dword [rbx + 0x79c], r10d
cmp r15d, ebp
cmovae ebp, r15d
mov dword [rsp + 0x128], ebp
cmp ebp, 2
jae 0x180025000
mov eax, dword [rbx + 0x7b0]
mov rdx, qword [rsp + 0x120]
mov dword [rdx], eax
mov eax, 1
jmp 0x1800264c9
mov eax, dword [rsp + 0x50]
mov dword [rbx + 0x7ac], r10d
mov edx, ebp
mov dword [rbx + 0x784], eax
mov eax, dword [rsp + 0x54]
mov dword [rbx + 0x788], eax
mov eax, dword [rsp + 0x58]
mov dword [rbx + 0x78c], eax
mov eax, dword [rsp + 0x5c]
mov dword [rbx + 0x790], eax
movsxd rax, ebp
lea rcx, [rax + rax*2]
add rcx, rcx
lea rax, [rbx + rcx*8 + 0x764]
nop word [rax + rax]
dec edx
mov dword [rax], 0x40000000
sub rax, 0x30
cmp edx, 2
jae 0x180025050
mov esi, r10d
movsxd r12, r13d
lea rbp, [rsp + 0x90]
nop
movsxd rdi, dword [rbp]
cmp edi, 2
jb 0x1800250e2
mov r8d, dword [rbx + 0x33210]
mov r9d, r13d
mov edx, esi
mov rcx, rbx
call fcn.180024a20
mov rcx, r12
lea r9d, [r14 + rax]
imul rcx, rcx, 0x110
add rcx, rdi
lea r8, [rbx + rcx*4 + 0x39120]
lea rcx, [rdi + rdi*2 + 0x78]
shl rcx, 4
add rcx, rbx
mov eax, dword [r8]
lea edx, [r9 + rax]
cmp edx, dword [rcx - 0x1c]
jae 0x1800250d0
xor r10d, r10d
mov dword [rcx - 0x1c], edx
mov dword [rcx], esi
mov dword [rcx - 4], r10d
mov dword [rcx - 0x14], r10d
jmp 0x1800250d3
xor r10d, r10d
dec edi
sub r8, 4
sub rcx, 0x30
cmp edi, 2
jae 0x1800250b2
inc esi
add rbp, 4
cmp esi, 4
jb 0x180025070
mov eax, dword [rbx + 0x33210]
mov r14d, dword [rsp + 0x44]
mov r11d, dword [rsp + 0x90]
movzx ecx, word [rbx + rax*2 + 0x33ff8]
shr rcx, 4
add r14d, dword [rbx + rcx*4 + 0x32764]
cmp r11d, 2
jb 0x18002511f
inc r11d
jmp 0x180025125
mov r11d, 2
cmp r11d, r15d
ja 0x180025237
mov esi, r10d
cmp r11d, dword [rbx + 0x32964]
jbe 0x18002514d
lea rax, [rbx + 0x32964]
add rax, 8
add esi, 2
cmp r11d, dword [rax]
ja 0x180025141
mov r15d, dword [rsp + 0x110]
movsxd rcx, r11d
imul r12, r12, 0x110
add r12, rcx
lea r9, [rcx + rcx*2 + 0x78]
movsxd rax, esi
shl r9, 4
lea r13, [rcx - 2]
lea rbp, [rbx + rax*4 + 0x32964]
add r9, rbx
lea r12, [rbx + r12*4 + 0x348d8]
mov edi, dword [rbp + 4]
mov eax, dword [r12]
cmp r11d, 5
mov r8d, 3
lea r10d, [r14 + rax]
cmovb r8, r13
cmp edi, 0x80
jae 0x1800251b7
shl r8, 7
add r8, rdi
add r10d, dword [rbx + r8*4 + 0x33614]
jmp 0x1800251f8
shl r8, 6
mov ecx, 0x7ffff
mov rdx, rdi
sub ecx, edi
and edx, 0xf
mov rax, rdi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea eax, [rax + rcx*2]
add rax, r8
mov eax, dword [rbx + rax*4 + 0x33214]
add eax, dword [rbx + rdx*4 + 0x33e14]
add r10d, eax
cmp r10d, dword [r9 - 0x1c]
jae 0x180025212
xor ecx, ecx
lea eax, [rdi + 4]
mov dword [r9 - 0x1c], r10d
mov dword [r9], eax
mov dword [r9 - 4], ecx
mov dword [r9 - 0x14], ecx
cmp r11d, dword [rbp]
jne 0x180025224
add esi, 2
add rbp, 8
cmp esi, r15d
je 0x180025237
inc r11d
add r12, 4
inc r13
add r9, 0x30
jmp 0x180025185
mov r9d, 1
mov rbp, r9
mov dword [rsp + 0x110], r9d
mov qword [rsp + 0x78], r9
cmp dword [rsp + 0x128], ebp
je 0x1800264b6
lea r13, [0x180000000]
mov rcx, qword [rbx + 0x30]
xor edi, edi
mov dword [rsp + 0x30], edi
call qword [rbx + 0x10]
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x32964]
mov dword [rbx + 0x760], eax
call qword [rbx + 0x20]
mov esi, eax
mov dword [rsp + 0x44], eax
test eax, eax
je 0x1800252f6
lea ecx, [rax - 2]
movsxd rdi, dword [rbx + rcx*4 + 0x32964]
mov dword [rsp + 0x30], edi
cmp edi, dword [rbx + 0x331f8]
jne 0x1800252f6
mov rcx, qword [rbx + 0x30]
call qword [rbx + 0x18]
mov r8d, dword [rbx + 0x760]
lea ecx, [rsi - 1]
mov ecx, dword [rbx + rcx*4 + 0x32964]
mov edx, 0x111
dec rax
cmp r8d, edx
cmova r8d, edx
inc ecx
mov rdx, rax
sub rdx, rcx
mov rcx, rdi
cmp edi, r8d
jae 0x1800252f6
add rcx, rax
sub rdx, rax
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x1800252f2
inc edi
inc rcx
cmp edi, r8d
jb 0x1800252e0
mov dword [rsp + 0x30], edi
inc dword [rbx + 0x331fc]
cmp edi, dword [rbx + 0x331f8]
jae 0x18002650a
inc dword [rsp + 0x118]
lea rdi, [rbp + rbp*2]
add rdi, rdi
mov r8d, dword [rbx + rdi*8 + 0x76c]
mov edx, dword [rbx + rdi*8 + 0x77c]
test r8d, r8d
je 0x180025398
dec edx
cmp dword [rbx + rdi*8 + 0x770], 0
je 0x18002537e
mov eax, dword [rbx + rdi*8 + 0x774]
lea rcx, [rax + rax*2]
add rcx, rcx
cmp dword [rbx + rdi*8 + 0x778], 4
mov eax, dword [rbx + rcx*8 + 0x768]
jae 0x18002536a
mov ecx, dword [r13 + rax*4 + 0x7c690]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7c630]
jmp 0x1800253a6
mov ecx, dword [r13 + rax*4 + 0x7c660]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7c630]
jmp 0x1800253a6
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x768]
mov eax, ecx
mov ecx, dword [r13 + rax*4 + 0x7c630]
jmp 0x1800253a6
lea rcx, [rdx + rdx*2]
add rcx, rcx
mov ecx, dword [rbx + rcx*8 + 0x768]
mov r12d, dword [rsp + 0x110]
lea eax, [r12 - 1]
cmp edx, eax
jne 0x1800253e9
cmp dword [rbx + rdi*8 + 0x780], 0
jne 0x1800253d5
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7c6c0]
mov dword [rsp + 0x24], r15d
jmp 0x1800254d3
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7c630]
mov dword [rsp + 0x24], r15d
jmp 0x1800254d3
test r8d, r8d
je 0x180025418
cmp dword [rbx + rdi*8 + 0x770], 0
je 0x180025418
mov edx, dword [rbx + rdi*8 + 0x774]
mov r8d, dword [rbx + rdi*8 + 0x778]
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7c690]
mov dword [rsp + 0x24], r15d
jmp 0x180025446
mov r8d, dword [rbx + rdi*8 + 0x780]
cmp r8d, 4
jae 0x180025437
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7c690]
mov dword [rsp + 0x24], r15d
jmp 0x180025446
mov eax, ecx
mov r15d, dword [r13 + rax*4 + 0x7c660]
mov dword [rsp + 0x24], r15d
mov eax, edx
lea rcx, [rax + rax*2]
add rcx, rcx
lea rsi, [rbx + rcx*8 + 0x764]
cmp r8d, 4
jae 0x1800254b6
mov ebp, r8d
mov eax, dword [rsi + rbp*4 + 0x20]
mov dword [rsp + 0x50], eax
mov eax, 1
mov r9d, eax
cmp r8d, eax
jb 0x180025498
mov r8, rbp
lea rdx, [rsi + 0x20]
lea rcx, [rsp + 0x54]
shl r8, 2
call fcn.180058a30
lea r9d, [rbp + 1]
lea rax, [rbp + 1]
cmp r9d, 4
jae 0x1800254d3
mov r8d, 4
lea rcx, [rsp + rax*4 + 0x50]
lea rdx, [rsi + rax*4 + 0x20]
sub r8d, r9d
shl r8, 2
call fcn.180058a30
jmp 0x1800254d3
lea eax, [r8 - 4]
mov dword [rsp + 0x50], eax
mov eax, dword [rsi + 0x20]
mov dword [rsp + 0x54], eax
mov eax, dword [rsi + 0x24]
mov dword [rsp + 0x58], eax
mov eax, dword [rsi + 0x28]
mov dword [rsp + 0x5c], eax
mov eax, dword [rsp + 0x54]
mov esi, dword [rbx + rdi*8 + 0x764]
mov ebp, dword [rsp + 0x50]
mov dword [rbx + rdi*8 + 0x788], eax
mov eax, dword [rsp + 0x58]
mov dword [rbx + rdi*8 + 0x768], r15d
mov dword [rbx + rdi*8 + 0x78c], eax
mov eax, dword [rsp + 0x5c]
mov dword [rbx + rdi*8 + 0x784], ebp
mov dword [rbx + rdi*8 + 0x790], eax
mov rcx, qword [rbx + 0x30]
mov dword [rsp + 0x40], esi
xor r13d, r13d
call qword [rbx + 0x18]
movzx r12d, byte [rax - 1]
mov r9d, dword [rsp + 0x118]
lea r8, [rax - 1]
mov eax, dword [rbx + 0x33e6c]
and eax, r9d
mov ecx, r15d
lea edx, [rbp + 1]
mov dword [rsp + 0x2c], eax
mov qword [rsp + 0x70], rcx
add rcx, rcx
lea r15, [rax + rcx*8]
mov rbp, r8
mov qword [rsp + 0x38], r8
movzx r8d, byte [r8 - 1]
movzx eax, word [rbx + r15*2 + 0x33e78]
sub rbp, rdx
mov edx, dword [rbx + 0x33e5c]
movzx r14d, byte [rbp]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
mov ecx, 8
lea r10d, [rsi + rax]
mov eax, dword [rbx + 0x33e68]
sub cl, dl
shr r8d, cl
mov ecx, edx
and eax, r9d
shl eax, cl
mov dword [rsp + 0x20], r10d
add r8d, eax
mov rax, qword [rbx + 0x33e70]
lea ecx, [r8 + r8*2]
shl ecx, 8
cmp dword [rsp + 0x24], 7
lea rsi, [rax + rcx*2]
jb 0x180025628
movzx r8d, r12b
xor r11d, r11d
movzx r9d, r14b
bts r8d, 8
mov r10d, 0x100
mov ecx, r8d
add r9d, r9d
mov eax, r10d
shr ecx, 8
and eax, r9d
add eax, r10d
add ecx, eax
movzx edx, word [rsi + rcx*2]
mov ecx, r8d
add r8d, r8d
shr ecx, 7
shr rdx, 4
mov eax, r8d
and ecx, 1
xor eax, r9d
neg ecx
not eax
sar rcx, 4
and r10d, eax
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [rbx + rdx*4 + 0x32764]
cmp r8d, 0x10000
jb 0x1800255d1
mov r10d, dword [rsp + 0x20]
jmp 0x18002567b
movzx r8d, r12b
xor r9d, r9d
bts r8d, 8
nop word [rax + rax]
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [rsi + rax*2]
and ecx, 1
neg ecx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r9d, dword [rbx + rdx*4 + 0x32764]
cmp r8d, 0x10000
jb 0x180025640
mov r11d, r9d
add r10d, r11d
mov dword [rsp + 0x20], r10d
cmp r10d, dword [rbx + rdi*8 + 0x794]
jae 0x1800256c1
mov r9d, dword [rsp + 0x110]
xor r11d, r11d
mov dword [rbx + rdi*8 + 0x794], r10d
mov dword [rbx + rdi*8 + 0x7b0], 0xffffffff
mov dword [rbx + rdi*8 + 0x79c], r11d
mov dword [rbx + rdi*8 + 0x7ac], r9d
lea r13d, [r11 + 1]
jmp 0x1800256cc
mov r9d, dword [rsp + 0x110]
xor r11d, r11d
movzx eax, word [rbx + r15*2 + 0x33e78]
mov ecx, dword [rsp + 0x40]
mov r10, qword [rsp + 0x70]
xor rax, 0x7f0
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x33ff8]
xor rax, 0x7f0
mov dword [rsp + 0x60], ecx
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
lea r8d, [rcx + rax]
mov dword [rsp + 0x80], r8d
cmp r14b, r12b
jne 0x18002578d
cmp dword [rbx + rdi*8 + 0x7ac], r9d
jae 0x180025734
cmp dword [rbx + rdi*8 + 0x7b0], 0
je 0x18002578d
movzx ecx, word [rbx + r15*2 + 0x34058]
movzx eax, word [rbx + r10*2 + 0x34010]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r8d
cmp edx, dword [rbx + rdi*8 + 0x794]
ja 0x18002578d
mov dword [rbx + rdi*8 + 0x794], edx
mov dword [rbx + rdi*8 + 0x7ac], r9d
mov dword [rbx + rdi*8 + 0x7b0], r11d
mov dword [rbx + rdi*8 + 0x79c], r11d
mov r13d, 1
mov edi, dword [rbx + 0x760]
mov eax, 0xfff
sub eax, r9d
cmp eax, edi
cmovb edi, eax
mov dword [rsp + 0x40], edi
cmp edi, 2
jb 0x180026489
mov r9d, dword [rbx + 0x331f8]
cmp edi, r9d
mov eax, r9d
cmovbe eax, edi
mov dword [rsp + 0x28], eax
test r13d, r13d
jne 0x180025989
cmp r14b, r12b
je 0x180025970
inc r9d
mov edx, 1
cmp r9d, edi
mov r8, rdx
cmova r9d, edi
cmp r9d, edx
jbe 0x18002580b
mov rax, qword [rsp + 0x38]
sub rbp, rax
lea rcx, [rax + 1]
movzx eax, byte [rcx + rbp]
cmp byte [rcx], al
jne 0x18002580b
inc edx
inc r8
inc rcx
cmp edx, r9d
jb 0x1800257f6
dec edx
lea r11, [r8 - 1]
cmp edx, 2
jb 0x1800259a2
mov r15d, dword [rsp + 0x118]
mov r12d, dword [rsp + 0x110]
movsxd rbp, dword [rsp + 0x128]
lea rcx, [0x180000000]
lea r8d, [r15 + 1]
lea edx, [rdx + r12 + 1]
mov r10d, dword [rcx + r10*4 + 0x7c630]
and r8d, dword [rbx + 0x33e6c]
movzx ecx, word [rbx + r10*2 + 0x33ff8]
mov rsi, r10
shl rsi, 4
xor rcx, 0x7f0
add rsi, r8
shr rcx, 4
movzx eax, word [rbx + rsi*2 + 0x33e78]
mov r9d, dword [rbx + rcx*4 + 0x32764]
xor rax, 0x7f0
shr rax, 4
add r9d, dword [rbx + rax*4 + 0x32764]
mov rax, qword [rsp + 0x78]
add r9d, dword [rsp + 0x20]
lea rdi, [rax + r11 + 1]
cmp ebp, edx
jae 0x1800258e0
lea rax, [rbp + rbp*2]
sub edx, ebp
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x1800258d0
movzx ecx, word [rbx + rsi*2 + 0x34058]
movzx eax, word [rbx + r10*2 + 0x34010]
imul r8, r8, 0x110
xor rcx, 0x7f0
shr rax, 4
add r8, r11
shr rcx, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
lea rcx, [rdi + rdi*2]
add edx, dword [rbx + rax*4 + 0x32764]
add rcx, rcx
add edx, dword [rbx + r8*4 + 0x39120]
add edx, r9d
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x1800259bb
lea eax, [r12 + 1]
mov dword [rbx + rcx*8 + 0x764], edx
mov r9d, r12d
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 0
mov dword [rbx + rcx*8 + 0x77c], eax
jmp 0x1800259be
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800259be
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800259be
mov r9d, dword [rsp + 0x110]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
jmp 0x1800259be
mov r9d, r12d
movsxd r10, dword [rsp + 0x2c]
movsxd r8, dword [rsp + 0x24]
mov r11, qword [rsp + 0x38]
lea rax, [rsp + 0x50]
xor r12d, r12d
movsxd r14, ebp
mov qword [rsp + 0xa0], r10
mov qword [rsp + 0xb0], r8
mov dword [rsp + 0x20], 2
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0x48], r14
mov qword [rsp + 0xa8], rax
mov ecx, dword [rax]
mov rsi, r11
inc ecx
sub rsi, rcx
movzx eax, byte [rsi]
cmp byte [r11], al
jne 0x180025e73
movzx eax, byte [rsi + 1]
cmp byte [r11 + 1], al
jne 0x180025e7a
mov r13d, dword [rsp + 0x28]
mov edi, 2
mov r15, rdi
cmp r13d, edi
jbe 0x180025a57
mov rdx, rsi
lea rcx, [r11 + 2]
sub rdx, r11
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x180025a57
inc edi
inc r15
inc rcx
cmp edi, r13d
jb 0x180025a42
lea edx, [rdi + r9]
cmp ebp, edx
jae 0x180025aa0
sub edx, ebp
lea rax, [r14 + r14*2]
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
add r14, rax
mov qword [rsp + 0x48], r14
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x180025a90
mov r9d, r10d
mov edx, r12d
mov rcx, rbx
mov ebp, edi
mov dword [rsp + 0x64], edi
call fcn.180024a20
mov r13d, dword [rsp + 0x110]
mov r9d, eax
mov rax, qword [rsp + 0xa0]
add r9d, dword [rsp + 0x80]
imul rax, rax, 0x110
lea rcx, [r15 + rax]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x78]
lea r8, [rbx + rcx*4 + 0x39120]
lea rcx, [rax + r15 + 0x28]
mov dword [rsp + 0x68], r9d
lea rdx, [rcx + rcx*2]
shl rdx, 4
add rdx, rbx
mov eax, dword [r8]
lea ecx, [r9 + rax]
cmp ecx, dword [rdx - 0x1c]
jae 0x180025b21
mov dword [rdx - 0x1c], ecx
mov dword [rdx - 4], r13d
mov dword [rdx], r12d
mov dword [rdx - 0x14], 0
dec edi
sub r8, 4
sub rdx, 0x30
cmp edi, 2
jae 0x180025b04
mov r13d, dword [rsp + 0x28]
test r12d, r12d
jne 0x180025b41
lea eax, [rbp + 1]
mov dword [rsp + 0x20], eax
mov eax, dword [rbx + 0x331f8]
lea r9d, [rbp + 1]
lea edx, [r9 + rax]
mov eax, dword [rsp + 0x40]
cmp edx, eax
cmova edx, eax
cmp r9d, edx
jae 0x180025b86
mov r11, qword [rsp + 0x38]
mov r8, rsi
lea rcx, [r15 + r11 + 1]
sub r8, r11
nop dword [rax]
movzx eax, byte [rcx + r8]
cmp byte [rcx], al
jne 0x180025b8b
inc r9d
inc rcx
cmp r9d, edx
jb 0x180025b70
jmp 0x180025b8b
mov r11, qword [rsp + 0x38]
or eax, 0xffffffff
sub eax, ebp
add r9d, eax
cmp r9d, 2
jb 0x180025e81
mov r10d, dword [rsp + 0x118]
mov edi, dword [rbx + 0x33e5c]
movzx r11d, byte [r15 + r11]
movzx esi, byte [r15 + rsi]
mov r13, qword [rbx + 0x33e70]
add r10d, ebp
mov eax, r10d
and r10d, dword [rbx + 0x33e68]
mov ecx, edi
and eax, dword [rbx + 0x33e6c]
xor r14d, r14d
bts r11d, 8
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0x38]
mov ebp, 0x100
movzx r12d, byte [r15 + rax - 1]
shl r10d, cl
nop word [rax + rax]
mov ecx, 8
add esi, esi
mov eax, ebp
sub cl, dil
and eax, esi
mov edx, r12d
shr edx, cl
add eax, ebp
mov ecx, r11d
shr ecx, 8
add edx, r10d
add eax, ecx
mov ecx, r11d
lea edx, [rdx + rdx*2]
shr ecx, 7
shl edx, 8
add r11d, r11d
add rdx, rax
and ecx, 1
mov eax, r11d
movzx r8d, word [r13 + rdx*2]
neg ecx
xor eax, esi
sar rcx, 4
shr r8, 4
not eax
and ecx, 0x7f
and ebp, eax
xor r8, rcx
add r14d, dword [rbx + r8*4 + 0x32764]
cmp r11d, 0x10000
jb 0x180025c00
mov rax, qword [rsp + 0xb0]
mov ebp, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x110]
lea r10, [0x180000000]
mov edx, dword [r10 + rax*4 + 0x7c690]
mov eax, dword [rsp + 0x88]
mov edi, dword [r10 + rdx*4 + 0x7c630]
mov rcx, rdx
shl rcx, 4
mov rsi, rdi
add rcx, rax
mov rax, qword [rsp + 0x90]
shl rsi, 4
movzx ecx, word [rbx + rcx*2 + 0x33e78]
add rax, r15
mov r15d, dword [rsp + 0x118]
shr rcx, 4
mov r8d, dword [rbx + rcx*4 + 0x32764]
movzx ecx, word [rbx + rdi*2 + 0x33ff8]
add r8d, dword [rbx + rax*4 + 0x39120]
lea eax, [rbp + r15 + 1]
xor rcx, 0x7f0
and eax, dword [rbx + 0x33e6c]
add r8d, r14d
shr rcx, 4
add r8d, dword [rsp + 0x68]
mov r11d, dword [rbx + rcx*4 + 0x32764]
mov r10d, eax
add rsi, r10
movzx eax, word [rbx + rsi*2 + 0x33e78]
xor rax, 0x7f0
shr rax, 4
add r11d, dword [rbx + rax*4 + 0x32764]
lea eax, [r9 + rbp]
add r11d, r8d
lea r8d, [rax + r12 + 1]
mov r12d, dword [rsp + 0x128]
cmp r12d, r8d
jae 0x180025d82
mov r14, qword [rsp + 0x48]
lea rax, [r14 + r14*2]
add rax, rax
lea rcx, [rbx + rax*8 + 0x764]
mov eax, r8d
sub eax, r12d
add r12d, eax
mov edx, eax
add r14, rdx
mov dword [rsp + 0x128], r12d
mov qword [rsp + 0x48], r14
nop dword [rax]
add rcx, 0x30
sub rdx, 1
mov dword [rcx], 0x40000000
jne 0x180025d70
jmp 0x180025d87
mov r14, qword [rsp + 0x48]
movzx eax, word [rbx + rsi*2 + 0x34058]
imul r10, r10, 0x110
lea ecx, [r9 - 2]
add rcx, r10
xor rax, 0x7f0
mov edx, dword [rbx + rcx*4 + 0x39128]
shr rax, 4
lea rcx, [r8 + r8*2]
add edx, dword [rbx + rax*4 + 0x32764]
movzx eax, word [rbx + rdi*2 + 0x34010]
add rcx, rcx
shr rax, 4
add edx, dword [rbx + rax*4 + 0x32764]
add edx, r11d
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x180025e49
mov r9d, dword [rsp + 0x110]
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov r11, qword [rsp + 0x38]
lea eax, [rbp + r9 + 1]
mov ebp, dword [rsp + 0x128]
mov dword [rbx + rcx*8 + 0x764], edx
mov dword [rbx + rcx*8 + 0x77c], eax
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 1
mov dword [rbx + rcx*8 + 0x774], r9d
mov dword [rbx + rcx*8 + 0x778], r12d
jmp 0x180025ea2
mov r12d, dword [rsp + 0x34]
mov r13d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x110]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov r11, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x128]
jmp 0x180025ea2
mov r13d, dword [rsp + 0x28]
jmp 0x180025ea2
mov r13d, dword [rsp + 0x28]
jmp 0x180025ea2
mov r9d, dword [rsp + 0x110]
mov r8d, dword [rsp + 0x24]
mov r10d, dword [rsp + 0x2c]
mov ebp, dword [rsp + 0x128]
mov r15d, dword [rsp + 0x118]
mov rax, qword [rsp + 0xa8]
inc r12d
add rax, 4
mov dword [rsp + 0x34], r12d
mov qword [rsp + 0xa8], rax
cmp r12d, 4
jb 0x180025a02
mov ecx, dword [rsp + 0x30]
cmp ecx, r13d
jbe 0x180025f0a
lea r8, [rbx + 0x32964]
xor edx, edx
xor eax, eax
mov ecx, r13d
cmp r13d, dword [r8]
jbe 0x180025efd
nop word [rax + rax]
add rax, 2
add edx, 2
cmp r13d, dword [r8 + rax*4]
ja 0x180025ef0
add edx, 2
mov dword [r8 + rax*4], r13d
mov dword [rsp + 0x44], edx
jmp 0x180025f11
lea r8, [rbx + 0x32964]
movsxd r10, dword [rsp + 0x20]
cmp ecx, r10d
jb 0x180026489
mov rax, qword [rsp + 0x70]
mov edi, dword [rsp + 0x110]
mov r9d, dword [rsp + 0x60]
movzx eax, word [rbx + rax*2 + 0x33ff8]
lea edx, [rcx + rdi]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x32764]
add r9d, eax
movsxd rax, ebp
mov dword [rsp + 0x28], r9d
cmp ebp, edx
jae 0x180025f90
lea rax, [rax + rax*2]
sub edx, ebp
add rax, rax
add ebp, edx
lea rcx, [rbx + rax*8 + 0x764]
mov eax, edx
mov dword [rsp + 0x128], ebp
nop word [rax + rax]
add rcx, 0x30
sub rax, 1
mov dword [rcx], 0x40000000
jne 0x180025f80
xor edx, edx
xor eax, eax
mov dword [rsp + 0x30], edx
cmp r10d, dword [r8]
jbe 0x180025fb1
nop dword [rax]
add rax, 2
add edx, 2
cmp r10d, dword [r8 + rax*4]
ja 0x180025fa0
mov dword [rsp + 0x30], edx
mov esi, dword [r8 + rax*4 + 4]
mov r11, qword [rsp + 0xa0]
lea r8, [r8 + rax*4]
mov ecx, 0x7ffff
imul r11, r11, 0x110
mov rax, rsi
sub ecx, esi
add r11, r10
mov qword [rsp + 0x48], r8
shr ecx, 0x1f
lea r12, [rbx + r11*4 + 0x348d8]
mov r14, r10
neg ecx
mov qword [rsp + 0x68], r10
mov qword [rsp + 0x88], r12
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea ecx, [rax + rcx*2]
movsxd rax, ebp
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x78]
mov dword [rsp + 0x34], ecx
lea rax, [rax + r10 + 0x28]
lea rbp, [rax + rax*2]
shl rbp, 4
add rbp, rbx
dec r15d
mov dword [rsp + 0x2c], r15d
mov qword [rsp + 0x80], rbp
nop dword [rax]
mov eax, dword [r12]
lea r13d, [r9 + rax]
cmp r10d, 5
jae 0x180026054
lea rdx, [r14 - 2]
jmp 0x180026059
mov edx, 3
cmp esi, 0x80
jae 0x180026074
shl rdx, 7
mov eax, esi
add rdx, rax
add r13d, dword [rbx + rdx*4 + 0x33614]
jmp 0x180026097
mov eax, ecx
shl rdx, 6
mov ecx, esi
add rdx, rax
and ecx, 0xf
mov eax, dword [rbx + rdx*4 + 0x33214]
add eax, dword [rbx + rcx*4 + 0x33e14]
mov ecx, dword [rsp + 0x34]
add r13d, eax
cmp r13d, dword [rbp - 0x1c]
jae 0x1800260b1
lea eax, [rsi + 4]
mov dword [rbp - 0x1c], r13d
mov dword [rbp - 4], edi
mov dword [rbp], eax
mov dword [rbp - 0x14], 0
cmp r10d, dword [r8]
jne 0x18002645c
mov eax, dword [rbx + 0x331f8]
mov r11, qword [rsp + 0x38]
lea edi, [r10 + 1]
lea edx, [rdi + rax]
mov eax, dword [rsp + 0x40]
lea ecx, [rsi + 1]
sub r11, rcx
cmp edx, eax
mov r9d, edi
cmova edx, eax
lea r10, [r14 + 1]
cmp edi, edx
jae 0x18002610f
mov r8, qword [rsp + 0x38]
lea rcx, [r14 + r11 + 1]
sub r8, r11
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x18002610a
inc r9d
inc r10
inc rcx
cmp r9d, edx
jb 0x1800260f3
mov r8, qword [rsp + 0x48]
or eax, 0xffffffff
sub eax, dword [rsp + 0x20]
add r9d, eax
or rax, 0xffffffffffffffff
sub rax, r14
mov dword [rsp + 0x60], r9d
add r10, rax
mov qword [rsp + 0x90], r10
cmp r9d, 2
jb 0x1800263e4
movzx ebp, byte [r14 + r11]
mov r9, qword [rbx + 0x33e70]
lea eax, [r15 + rdi]
mov edi, dword [rbx + 0x33e68]
mov ecx, eax
xor r15d, r15d
and ecx, dword [rbx + 0x33e6c]
and edi, eax
mov r12d, 0x100
mov dword [rsp + 0x64], ecx
mov rcx, qword [rsp + 0x38]
movzx r11d, byte [r14 + rcx]
movzx r10d, byte [r14 + rcx - 1]
mov r14d, dword [rbx + 0x33e5c]
mov ecx, r14d
bts r11d, 8
shl edi, cl
nop dword [rax + rax]
mov ecx, 8
add ebp, ebp
mov eax, r12d
sub cl, r14b
and eax, ebp
mov edx, r10d
shr edx, cl
add eax, r12d
mov ecx, r11d
shr ecx, 8
add edx, edi
add eax, ecx
mov ecx, r11d
lea edx, [rdx + rdx*2]
shr ecx, 7
shl edx, 8
add r11d, r11d
add rdx, rax
and ecx, 1
mov eax, r11d
movzx r8d, word [r9 + rdx*2]
neg ecx
xor eax, ebp
sar rcx, 4
shr r8, 4
not eax
and ecx, 0x7f
and r12d, eax
xor r8, rcx
add r15d, dword [rbx + r8*4 + 0x32764]
cmp r11d, 0x10000
jb 0x180026190
mov r11d, dword [rsp + 0x64]
mov rax, qword [rsp + 0xb0]
mov r9d, dword [rsp + 0x60]
mov r10, qword [rsp + 0x90]
lea rdi, [0x180000000]
mov edx, dword [rdi + rax*4 + 0x7c660]
mov rcx, rdx
mov ebp, dword [rdi + rdx*4 + 0x7c630]
shl rcx, 4
add rcx, r11
inc r11d
mov r12, rbp
movzx eax, word [rbx + rcx*2 + 0x33e78]
and r11d, dword [rbx + 0x33e6c]
movzx ecx, word [rbx + rbp*2 + 0x33ff8]
shr rax, 4
shl r12, 4
xor rcx, 0x7f0
mov r8d, dword [rbx + rax*4 + 0x32764]
add r12, r11
shr rcx, 4
movzx eax, word [rbx + r12*2 + 0x33e78]
mov edi, dword [rbx + rcx*4 + 0x32764]
add r8d, r15d
xor rax, 0x7f0
add r8d, r13d
mov r13d, dword [rsp + 0x128]
shr rax, 4
add edi, dword [rbx + rax*4 + 0x32764]
mov eax, dword [rsp + 0x20]
add eax, r9d
mov r9d, dword [rsp + 0x110]
add edi, r8d
lea r8d, [rax + r9 + 1]
cmp r13d, r8d
jae 0x180026300
mov r15, qword [rsp + 0x70]
lea rax, [r15 + r15*2]
add rax, rax
lea rcx, [rbx + rax*8 + 0x764]
mov eax, r8d
sub eax, r13d
add r13d, eax
mov edx, eax
add r15, rdx
mov dword [rsp + 0x128], r13d
mov qword [rsp + 0x70], r15
nop word [rax + rax]
add rcx, 0x30
sub rdx, 1
mov dword [rcx], 0x40000000
jne 0x1800262f0
movzx ecx, word [rbx + r12*2 + 0x34058]
movzx eax, word [rbx + rbp*2 + 0x34010]
imul r11, r11, 0x110
xor rcx, 0x7f0
shr rax, 4
add r11, r10
shr rcx, 4
mov edx, dword [rbx + rcx*4 + 0x32764]
lea rcx, [r8 + r8*2]
add edx, dword [rbx + rax*4 + 0x32764]
add rcx, rcx
add edx, dword [rbx + r11*4 + 0x39120]
add edx, edi
cmp edx, dword [rbx + rcx*8 + 0x764]
jae 0x1800263be
mov r10d, dword [rsp + 0x20]
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
mov r8, qword [rsp + 0x48]
mov r12, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x2c]
lea eax, [r10 + r9 + 1]
mov dword [rbx + rcx*8 + 0x764], edx
mov dword [rbx + rcx*8 + 0x780], 0
mov dword [rbx + rcx*8 + 0x77c], eax
lea eax, [rsi + 4]
mov dword [rbx + rcx*8 + 0x76c], 1
mov dword [rbx + rcx*8 + 0x770], 1
mov dword [rbx + rcx*8 + 0x774], r9d
mov dword [rbx + rcx*8 + 0x778], eax
jmp 0x1800263f1
mov r14, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x80]
mov r8, qword [rsp + 0x48]
mov r12, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x2c]
mov r10d, dword [rsp + 0x20]
jmp 0x1800263f1
mov r10d, dword [rsp + 0x20]
mov r9d, dword [rsp + 0x110]
mov edx, dword [rsp + 0x30]
add r8, 8
add edx, 2
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x30], edx
cmp edx, dword [rsp + 0x44]
je 0x180026489
mov esi, dword [r8 + 4]
cmp esi, 0x80
jb 0x18002644c
mov r9d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x110]
mov ecx, 0x7ffff
sub ecx, esi
mov rax, rsi
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x30764]
lea ecx, [rax + rcx*2]
mov dword [rsp + 0x34], ecx
jmp 0x18002645c
mov ecx, dword [rsp + 0x34]
mov r9d, dword [rsp + 0x28]
mov edi, dword [rsp + 0x110]
inc r10d
inc r14
add r12, 4
add rbp, 0x30
mov dword [rsp + 0x20], r10d
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x88], r12
jmp 0x180026040
mov rbp, qword [rsp + 0x78]
inc r9d
lea r13, [0x180000000]
inc rbp
mov dword [rsp + 0x110], r9d
mov qword [rsp + 0x78], rbp
cmp r9d, dword [rsp + 0x128]
jne 0x180025261
mov r8d, r9d
mov rdx, qword [rsp + 0x120]
mov rcx, rbx
call fcn.180024af0
mov rsi, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0xe8]
mov r14, qword [rsp + 0xd0]
mov r15, qword [rsp + 0xc8]
add rsp, 0x100
pop rbx
ret
mov r8d, dword [rsp + 0x110]
mov dword [rbx + 0x75c], esi
mov dword [rbx + 0x758], edi
jmp 0x1800264b9