Function at 0x18008e1b0
Capabilities:
Encode data using xor

Disassembly:
cmp dword [rcx], 0
mov r10, rcx
je 0x18006fc4b
lea rdx, [0x1800fd718]
lea rcx, [0x1800fd5e4]
jmp fcn.180069910
mov ecx, dword [rcx + 0x90]
mov eax, ecx
and eax, 0xff0000
cmp eax, 0x10000
je 0x18006fc72
lea rdx, [0x1800feb10]
lea rcx, [0x1800fd5e4]
jmp fcn.180069910
cmp qword [r10 + 0xf0], 0
jne 0x18006fcb0
cmp qword [r10 + 0xf8], 0
jne 0x18006fcb0
sar ecx, 0x18
sub ecx, 1
je 0x18006fca8
sub ecx, 3
je 0x18006fca0
cmp ecx, 4
jne 0x18006fcb8
mov rcx, r10
jmp 0x1800700c0
mov rcx, r10
jmp 0x18006fe30
mov rcx, r10
jmp 0x18006fcc0
mov rcx, r10
jmp 0x18008dfa0
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
movsxd r14, dword [rcx + 0xb8]
mov eax, r9d
mov ebp, dword [rcx + 0xa0]
mov ebx, r9d
mov r15d, dword [rsp + 0x40]
mov r10, rdx
sar eax, 0x10
mov r12d, 0xffffffff
imul eax, r14d
movsxd rdi, eax
mov rax, qword [rcx + 0xa8]
lea rsi, [rax + rdi*4]
mov eax, dword [r8]
xor edx, edx
mov ecx, dword [r10]
add eax, 0x7fff
add ecx, 0x7fff
cmovns edx, ecx
mov ecx, eax
sar ecx, 0x10
cmp ecx, ebp
jl 0x18006fd34
mov eax, ebp
shl eax, 0x10
cmp eax, edx
jle 0x18006fdb2
sar edx, 0x10
sar eax, 0x10
mov edi, edx
and edi, 0x1f
movsxd rcx, edx
sar rcx, 5
sub eax, edx
lea r9, [rsi + rcx*4]
lea ecx, [rax + rdi]
neg ecx
and ecx, 0x1f
je 0x18006fd62
mov r11d, r12d
shr r11d, cl
jmp 0x18006fd65
xor r11d, r11d
and edi, 0x1f
je 0x18006fd86
mov ecx, edi
mov edx, r12d
shl edx, cl
test edx, edx
je 0x18006fd88
add eax, 0xffffffe0
add eax, edi
jns 0x18006fd88
xor eax, eax
and edx, r11d
xor r11d, r11d
jmp 0x18006fd88
xor edx, edx
sar eax, 5
test edx, edx
je 0x18006fd96
or dword [r9], edx
add r9, 4
test eax, eax
je 0x18006fdaa
mov edx, eax
mov rdi, r9
mov rax, r12
mov ecx, edx
rep stosd dword [rdi], eax
lea r9, [r9 + rdx*4]
test r11d, r11d
je 0x18006fdb2
or dword [r9], r11d
cmp ebx, r15d
je 0x18006fe12
mov eax, dword [r10 + 0x1c]
add dword [r10], eax
mov eax, dword [r10 + 0x24]
add dword [r10 + 4], eax
mov eax, dword [r10 + 4]
test eax, eax
jle 0x18006fddd
sub eax, dword [r10 + 0x10]
mov dword [r10 + 4], eax
mov eax, dword [r10 + 0xc]
add dword [r10], eax
mov eax, dword [r8 + 0x1c]
add dword [r8], eax
mov eax, dword [r8 + 0x24]
add dword [r8 + 4], eax
mov eax, dword [r8 + 4]
test eax, eax
jle 0x18006fe03
sub eax, dword [r8 + 0x10]
mov dword [r8 + 4], eax
mov eax, dword [r8 + 0xc]
add dword [r8], eax
add ebx, 0x10000
lea rsi, [rsi + r14*4]
jmp 0x18006fd10
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
pop r15
pop r14
pop r12
ret
push rbx
push rsi
push rdi
push r12
push r13
mov r13d, dword [rcx + 0xa0]
mov esi, r9d
mov r9d, dword [rcx + 0xb8]
mov eax, esi
sar eax, 0x10
mov r10, rdx
imul eax, r9d
mov r11, r8
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x48], r9d
mov qword [rsp + 0x40], r15
movsxd rdx, eax
mov rax, qword [rcx + 0xa8]
lea r12, [rax + rdx*4]
xor edx, edx
nop dword [rax]
mov ecx, dword [r10]
test ecx, ecx
mov r8d, dword [r11]
mov eax, r8d
cmovs ecx, edx
sar eax, 0x10
cmp eax, r13d
jl 0x18006fea0
mov r8d, r13d
shl r8d, 0x10
dec r8d
cmp r8d, ecx
jle 0x18006ffd4
mov ebp, ecx
mov eax, 0xa000a001
movzx ecx, cx
mov edi, r8d
add ecx, 0x199a
sar ebp, 0x10
mul ecx
movsxd rbx, ebp
mov r9d, ebp
and r9d, 1
sar rbx, 1
add rbx, r12
movzx ecx, r8w
add ecx, 0x199a
sar edi, 0x10
mov r14d, edx
mov eax, 0xa000a001
mul ecx
movzx eax, byte [rbx]
movzx ecx, r9b
shl cl, 2
mov r15d, edx
shr al, cl
lea ecx, [r9*4]
and al, 0xf
shr r14d, 0xd
shr r15d, 0xd
sub al, r14b
cmp ebp, edi
je 0x18006ffac
add al, 5
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, 0xf
shl al, cl
and dl, 0xf
shl dl, cl
not al
and al, byte [rbx]
or dl, al
movsxd rax, r9d
xor r9d, 1
mov byte [rbx], dl
add rbx, rax
inc ebp
cmp ebp, edi
jge 0x18006ff96
sub edi, ebp
nop word [rax + rax]
movzx eax, byte [rbx]
movzx ecx, r9b
shl cl, 2
shr al, cl
lea ecx, [r9*4]
and al, 0xf
add al, 5
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, 0xf
shl al, cl
and dl, 0xf
not al
shl dl, cl
and al, byte [rbx]
or dl, al
movsxd rax, r9d
mov byte [rbx], dl
xor r9d, 1
add rbx, rax
sub rdi, 1
jne 0x18006ff50
movzx eax, byte [rbx]
movzx ecx, r9b
shl cl, 2
shr al, cl
lea ecx, [r9*4]
and al, 0xf
mov r9d, dword [rsp + 0x48]
add al, r15b
movzx edx, al
shr dl, 4
neg dl
or dl, al
mov eax, 0xf
shl al, cl
and dl, 0xf
shl dl, cl
not al
and al, byte [rbx]
or dl, al
mov byte [rbx], dl
xor edx, edx
cmp esi, dword [rsp + 0x50]
je 0x18007009c
cmp si, 0xd555
je 0x18007003d
mov eax, dword [r10 + 0x18]
add dword [r10], eax
mov eax, dword [r10 + 0x20]
add dword [r10 + 4], eax
mov eax, dword [r10 + 4]
test eax, eax
jle 0x18007000b
sub eax, dword [r10 + 0x10]
mov dword [r10 + 4], eax
mov eax, dword [r10 + 0xc]
add dword [r10], eax
mov eax, dword [r11 + 0x18]
add dword [r11], eax
mov eax, dword [r11 + 0x20]
add dword [r11 + 4], eax
mov eax, dword [r11 + 4]
test eax, eax
jle 0x180070031
sub eax, dword [r11 + 0x10]
mov dword [r11 + 4], eax
mov eax, dword [r11 + 0xc]
add dword [r11], eax
mov eax, 0x5555
add esi, eax
jmp 0x18006fe80
mov eax, dword [r10 + 0x1c]
add dword [r10], eax
mov eax, dword [r10 + 0x24]
add dword [r10 + 4], eax
mov eax, dword [r10 + 4]
test eax, eax
jle 0x180070063
sub eax, dword [r10 + 0x10]
mov dword [r10 + 4], eax
mov eax, dword [r10 + 0xc]
add dword [r10], eax
mov eax, dword [r11 + 0x1c]
add dword [r11], eax
mov eax, dword [r11 + 0x24]
add dword [r11 + 4], eax
mov eax, dword [r11 + 4]
test eax, eax
jle 0x180070089
sub eax, dword [r11 + 0x10]
mov dword [r11 + 4], eax
mov eax, dword [r11 + 0xc]
add dword [r11], eax
movsxd rax, r9d
lea r12, [r12 + rax*4]
mov eax, 0x5556
add esi, eax
jmp 0x18006fe80
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov esi, dword [rcx + 0xb8]
mov r13d, r9d
mov r9d, dword [rcx + 0xa0]
mov eax, r13d
or r11d, 0xffffffff
sar eax, 0x10
xor r12d, r12d
mov dword [rsp + 0x78], esi
or r10d, r11d
mov dword [rsp + 0x60], r9d
imul eax, esi
mov rdi, rdx
mov rbx, r8
mov r14d, r12d
mov ebp, 0xff
movsxd rdx, eax
mov rax, qword [rcx + 0xa8]
lea r15, [rax + rdx*4]
nop dword [rax]
mov ecx, dword [rdi]
test ecx, ecx
mov r8d, dword [rbx]
mov eax, r8d
cmovs ecx, r12d
sar eax, 0x10
cmp eax, r9d
jl 0x180070140
mov r8d, r9d
shl r8d, 0x10
dec r8d
cmp r8d, ecx
jle 0x180070369
mov r9d, ecx
mov eax, 0x88008801
movzx ecx, cx
mov esi, r8d
add ecx, 0x788
sar r9d, 0x10
mul ecx
movzx ecx, r8w
mov eax, 0x88008801
add ecx, 0x788
sar esi, 0x10
mov ebp, edx
mul ecx
shr ebp, 0xb
mov r12d, edx
shr r12d, 0xb
cmp r9d, esi
jne 0x1800701ab
movsxd r8, r9d
movzx ecx, byte [r8 + r15]
sub ecx, ebp
mov ebp, 0xff
add ecx, r12d
cmp ecx, ebp
movzx eax, cl
cmovg eax, ebp
mov byte [r8 + r15], al
jmp 0x180070362
movsxd rdx, r9d
mov r8d, esi
movzx ecx, byte [rdx + r15]
sub ecx, ebp
mov ebp, 0xff
add ecx, 0x11
cmp ecx, ebp
movzx eax, cl
cmovg eax, ebp
inc r9d
sub r8d, r9d
mov byte [rdx + r15], al
cmp r8d, 4
jle 0x180070319
test r11d, r11d
jns 0x1800701ef
mov r11d, r9d
mov r10d, esi
inc r14d
jmp 0x18007034b
cmp r9d, r10d
jge 0x1800702e0
cmp esi, r11d
jl 0x1800702e0
cmp r9d, r11d
jle 0x180070240
movsxd rdx, r11d
mov r8d, r9d
sub r8d, r11d
add rdx, r15
imul r11d, r14d, 0x11
test r8d, r8d
je 0x18007023b
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, r11d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r8d, 1
jne 0x180070220
mov r11d, r9d
jmp 0x18007026b
jge 0x18007026b
movsxd rdx, r9d
mov r8d, r11d
add rdx, r15
sub r8d, r9d
je 0x18007026b
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, 0x11
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r8d, 1
jne 0x180070250
cmp r10d, esi
jle 0x1800702a6
movsxd rdx, esi
add rdx, r15
imul r8d, r14d, 0x11
sub r10d, esi
je 0x18007029b
nop
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, r8d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r10d, 1
jne 0x180070280
mov r10d, esi
inc r14d
jmp 0x18007034b
jge 0x1800702db
movsxd rdx, r10d
mov r8d, esi
add rdx, r15
sub r8d, r10d
je 0x1800702db
nop word [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, 0x11
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r8d, 1
jne 0x1800702c0
inc r14d
jmp 0x18007034b
movsxd rdx, r11d
add rdx, r15
imul r8d, r14d, 0x11
sub r10d, r11d
je 0x18007030b
nop
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, r8d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r10d, 1
jne 0x1800702f0
mov r11d, r9d
mov r10d, esi
mov r14d, 1
jmp 0x18007034b
movsxd rdx, r9d
add rdx, r15
test r8d, r8d
je 0x18007034b
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, 0x11
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r8d, 1
jne 0x180070330
movsxd rdx, esi
movzx eax, byte [rdx + r15]
add eax, r12d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx + r15], cl
mov esi, dword [rsp + 0x78]
xor r12d, r12d
cmp r13d, dword [rsp + 0x80]
je 0x18007047e
cmp r13w, 0xf777
je 0x1800703cb
mov eax, dword [rdi + 0x18]
add dword [rdi], eax
mov eax, dword [rdi + 0x20]
add dword [rdi + 4], eax
mov eax, dword [rdi + 4]
test eax, eax
jle 0x18007039c
sub eax, dword [rdi + 0x10]
mov dword [rdi + 4], eax
mov eax, dword [rdi + 0xc]
add dword [rdi], eax
mov eax, dword [rbx + 0x18]
add dword [rbx], eax
mov eax, dword [rbx + 0x20]
add dword [rbx + 4], eax
mov eax, dword [rbx + 4]
test eax, eax
jle 0x1800703b9
sub eax, dword [rbx + 0x10]
mov dword [rbx + 4], eax
mov eax, dword [rbx + 0xc]
add dword [rbx], eax
mov r9d, dword [rsp + 0x60]
mov eax, 0x1111
add r13d, eax
jmp 0x180070120
mov eax, dword [rdi + 0x1c]
add dword [rdi], eax
mov eax, dword [rdi + 0x24]
add dword [rdi + 4], eax
mov eax, dword [rdi + 4]
test eax, eax
jle 0x1800703e8
sub eax, dword [rdi + 0x10]
mov dword [rdi + 4], eax
mov eax, dword [rdi + 0xc]
add dword [rdi], eax
mov eax, dword [rbx + 0x1c]
add dword [rbx], eax
mov eax, dword [rbx + 0x24]
add dword [rbx + 4], eax
mov eax, dword [rbx + 4]
test eax, eax
jle 0x180070405
sub eax, dword [rbx + 0x10]
mov dword [rbx + 4], eax
mov eax, dword [rbx + 0xc]
add dword [rbx], eax
cmp r11d, r10d
je 0x180070465
cmp r14d, 0xf
jne 0x180070425
sub r10d, r11d
movsxd rcx, r11d
movsxd r8, r10d
add rcx, r15
mov edx, ebp
call fcn.1800deffc
jmp 0x18007045b
movsxd rdx, r11d
add rdx, r15
imul r8d, r14d, 0x11
sub r10d, r11d
je 0x18007045b
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, r8d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r10d, 1
jne 0x180070440
or r10d, 0xffffffff
mov r14d, r12d
or r11d, r10d
mov r9d, dword [rsp + 0x60]
movsxd rax, esi
lea r15, [r15 + rax*4]
mov eax, 0x1112
add r13d, eax
jmp 0x180070120
cmp r11d, r10d
je 0x1800704cb
cmp r14d, 0xf
jne 0x18007049e
sub r10d, r11d
movsxd rcx, r11d
movsxd r8, r10d
add rcx, r15
mov edx, ebp
call fcn.1800deffc
jmp 0x1800704cb
movsxd rdx, r11d
add rdx, r15
imul r8d, r14d, 0x11
sub r10d, r11d
je 0x1800704cb
nop dword [rax]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
add eax, r8d
cmp eax, ebp
movzx ecx, al
cmovg ecx, ebp
mov byte [rdx - 1], cl
sub r10d, 1
jne 0x1800704b0
mov rbx, qword [rsp + 0x68]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movsx r10d, byte [rcx + 0x93]
sub r10d, 1
je 0x18008dfc4
sub r10d, 3
je 0x18008dfbf
cmp r10d, 4
jne 0x18008dfc9
jmp 0x18008e540
jmp 0x18008e1b0
jmp 0x18008dfd0
ret
push rbx
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x28
mov r12d, r9d
mov qword [rsp + 0x70], rbp
mov r9d, dword [rcx + 0xb8]
mov eax, r12d
sar eax, 0x10
mov rsi, r8
mov r8d, dword [rcx + 0xa0]
mov r14, rdx
imul eax, r9d
mov r13, rcx
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x78], r8d
mov qword [rsp + 0x20], r15
movsxd r10, eax
mov rax, qword [rcx + 0xa8]
lea rdx, [rax + r10*4]
mov ebx, dword [rsi]
xor ecx, ecx
mov eax, dword [r14]
add ebx, 0x7fff
add eax, 0x7fff
mov qword [rsp + 0x68], rdx
cmovns ecx, eax
mov eax, ebx
sar eax, 0x10
cmp eax, r8d
jl 0x18008e04e
mov ebx, r8d
shl ebx, 0x10
cmp ebx, ecx
jle 0x18008e134
sar ecx, 0x10
movsxd rax, ecx
sar rax, 5
sar ebx, 0x10
sub ebx, ecx
lea rdi, [rdx + rax*4]
mov eax, ecx
and eax, 0x1f
lea ecx, [rbx + rax]
neg ecx
and ecx, 0x1f
je 0x18008e081
or r15d, 0xffffffff
shr r15d, cl
jmp 0x18008e084
xor r15d, r15d
and eax, 0x1f
je 0x18008e0a5
or ebp, 0xffffffff
mov ecx, eax
shl ebp, cl
test ebp, ebp
je 0x18008e0a7
add ebx, 0xffffffe0
add ebx, eax
jns 0x18008e0a7
xor ebx, ebx
and ebp, r15d
xor r15d, r15d
jmp 0x18008e0a7
xor ebp, ebp
sar ebx, 5
test ebp, ebp
je 0x18008e0d5
mov edx, 4
mov rcx, rdi
call qword [r13 + 0xf0]
mov r8d, 4
mov rcx, rdi
or eax, ebp
mov edx, eax
call qword [r13 + 0xf8]
add rdi, 4
test ebx, ebx
je 0x18008e0fc
nop dword [rax]
mov r8d, 4
or edx, 0xffffffff
mov rcx, rdi
call qword [r13 + 0xf8]
add rdi, 4
sub ebx, 1
jne 0x18008e0e0
test r15d, r15d
je 0x18008e125
mov edx, 4
mov rcx, rdi
call qword [r13 + 0xf0]
mov r8d, 4
mov rcx, rdi
or eax, r15d
mov edx, eax
call qword [r13 + 0xf8]
mov r9d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x78]
mov rdx, qword [rsp + 0x68]
cmp r12d, dword [rsp + 0x80]
je 0x18008e194
mov eax, dword [r14 + 0x1c]
add dword [r14], eax
mov eax, dword [r14 + 0x24]
add dword [r14 + 4], eax
mov eax, dword [r14 + 4]
test eax, eax
jle 0x18008e164
sub eax, dword [r14 + 0x10]
mov dword [r14 + 4], eax
mov eax, dword [r14 + 0xc]
add dword [r14], eax
mov eax, dword [rsi + 0x1c]
add dword [rsi], eax
mov eax, dword [rsi + 0x24]
add dword [rsi + 4], eax
mov eax, dword [rsi + 4]
test eax, eax
jle 0x18008e181
sub eax, dword [rsi + 0x10]
mov dword [rsi + 4], eax
mov eax, dword [rsi + 0xc]
add dword [rsi], eax
movsxd rax, r9d
add r12d, 0x10000
lea rdx, [rdx + rax*4]
jmp 0x18008e024
mov r15, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x70]
add rsp, 0x28
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
mov r10d, dword [rcx + 0xb8]
mov r12d, r9d
mov r9d, dword [rcx + 0xa0]
mov eax, r12d
sar eax, 0x10
mov rbx, rdx
imul eax, r10d
mov rdi, r8
mov r13, rcx
mov dword [rsp + 0x90], r10d
mov dword [rsp + 0x88], r9d
xor r11d, r11d
mov qword [rsp + 0x38], r15
movsxd rdx, eax
mov rax, qword [rcx + 0xa8]
lea rdx, [rax + rdx*4]
mov qword [rsp + 0x20], rdx
nop
mov ecx, dword [rbx]
test ecx, ecx
mov r8d, dword [rdi]
mov eax, r8d
cmovs ecx, r11d
sar eax, 0x10
cmp eax, r9d
jl 0x18008e230
mov r8d, r9d
shl r8d, 0x10
dec r8d
cmp r8d, ecx
jle 0x18008e470
mov r15d, ecx
mov eax, 0xa000a001
movzx ecx, cx
mov r14d, r8d
add ecx, 0x199a
sar r15d, 0x10
movsxd rsi, r15d
mov ebp, r15d
sar rsi, 1
and ebp, 1
add rsi, rdx
sar r14d, 0x10
mul ecx
movzx ecx, r8w
mov eax, edx
add ecx, 0x199a
shr eax, 0xd
mov dword [rsp + 0x98], eax
mov eax, 0xa000a001
mul ecx
mov rcx, rsi
mov eax, edx
mov edx, 1
shr eax, 0xd
mov dword [rsp + 0x80], eax
cmp r15d, r14d
jne 0x18008e30c
call qword [r13 + 0xf0]
movzx r8d, al
movzx ecx, bpl
shl cl, 2
shr r8b, cl
lea ecx, [rbp*4]
and r8b, 0xf
movzx eax, al
sub r8b, byte [rsp + 0x98]
add r8b, byte [rsp + 0x80]
movzx edx, r8b
mov r8d, 0xf
mov r9d, edx
shl r8d, cl
not r8d
shr r9d, 4
and r8d, eax
neg r9d
or edx, r9d
and edx, 0xf
shl edx, cl
mov rcx, rsi
or edx, r8d
mov r8d, 1
call qword [r13 + 0xf8]
jmp 0x18008e458
call qword [r13 + 0xf0]
movzx ecx, bpl
mov r8d, 0xf
movzx edx, al
shl cl, 2
shr dl, cl
mov r9d, eax
and dl, 0xf
lea ecx, [rbp*4]
sub dl, byte [rsp + 0x98]
add dl, 5
shl r8d, cl
movzx eax, dl
not r8d
mov edx, eax
shr edx, 4
neg edx
or edx, eax
movzx eax, r9b
and edx, 0xf
and r8d, eax
shl edx, cl
mov rcx, rsi
or edx, r8d
mov r8d, 1
call qword [r13 + 0xf8]
movsxd rax, ebp
xor ebp, 1
add rsi, rax
inc r15d
cmp r15d, r14d
jge 0x18008e3f2
sub r14d, r15d
mov edx, 1
mov rcx, rsi
call qword [r13 + 0xf0]
movzx ecx, bpl
mov r8d, 0xf
shl cl, 2
movzx edx, al
shr dl, cl
lea ecx, [rbp*4]
and dl, 0xf
shl r8d, cl
add dl, 5
movzx eax, al
movzx edx, dl
not r8d
mov r9d, edx
and r8d, eax
shr r9d, 4
neg r9d
or edx, r9d
and edx, 0xf
shl edx, cl
mov rcx, rsi
or edx, r8d
mov r8d, 1
call qword [r13 + 0xf8]
movsxd rax, ebp
xor ebp, 1
add rsi, rax
sub r14, 1
jne 0x18008e381
mov edx, 1
mov rcx, rsi
call qword [r13 + 0xf0]
movzx ecx, bpl
mov r8d, 0xf
shl cl, 2
movzx edx, al
shr dl, cl
lea ecx, [rbp*4]
and dl, 0xf
shl r8d, cl
add dl, byte [rsp + 0x80]
not r8d
movzx edx, dl
mov r9d, edx
movzx eax, al
and r8d, eax
shr r9d, 4
neg r9d
or edx, r9d
and edx, 0xf
shl edx, cl
mov rcx, rsi
or edx, r8d
mov r8d, 1
call qword [r13 + 0xf8]
mov r10d, dword [rsp + 0x90]
xor r11d, r11d
mov r9d, dword [rsp + 0x88]
mov rdx, qword [rsp + 0x20]
cmp r12d, dword [rsp + 0xa0]
je 0x18008e520
cmp r12w, 0xd555
je 0x18008e4cd
mov eax, dword [rbx + 0x18]
add dword [rbx], eax
mov eax, dword [rbx + 0x20]
add dword [rbx + 4], eax
mov eax, dword [rbx + 4]
test eax, eax
jle 0x18008e4a3
sub eax, dword [rbx + 0x10]
mov dword [rbx + 4], eax
mov eax, dword [rbx + 0xc]
add dword [rbx], eax
mov eax, dword [rdi + 0x18]
add dword [rdi], eax
mov eax, dword [rdi + 0x20]
add dword [rdi + 4], eax
mov eax, dword [rdi + 4]
test eax, eax
jle 0x18008e4c0
sub eax, dword [rdi + 0x10]
mov dword [rdi + 4], eax
mov eax, dword [rdi + 0xc]
add dword [rdi], eax
mov eax, 0x5555
add r12d, eax
jmp 0x18008e210
mov eax, dword [rbx + 0x1c]
add dword [rbx], eax
mov eax, dword [rbx + 0x24]
add dword [rbx + 4], eax
mov eax, dword [rbx + 4]
test eax, eax
jle 0x18008e4ea
sub eax, dword [rbx + 0x10]
mov dword [rbx + 4], eax
mov eax, dword [rbx + 0xc]
add dword [rbx], eax
mov eax, dword [rdi + 0x1c]
add dword [rdi], eax
mov eax, dword [rdi + 0x24]
add dword [rdi + 4], eax
mov eax, dword [rdi + 4]
test eax, eax
jle 0x18008e507
sub eax, dword [rdi + 0x10]
mov dword [rdi + 4], eax
mov eax, dword [rdi + 0xc]
add dword [rdi], eax
movsxd rax, r10d
lea rdx, [rdx + rax*4]
mov eax, 0x5556
add r12d, eax
mov qword [rsp + 0x20], rdx
jmp 0x18008e210
mov r15, qword [rsp + 0x38]
add rsp, 0x40
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rsi, rcx
mov dword [rsp + 0xa0], r9d
mov ecx, dword [rcx + 0xb8]
xor r13d, r13d
or r12d, 0xffffffff
mov dword [rsp + 0xa8], r13d
mov eax, r9d
mov dword [rsp + 0x24], ecx
mov r11d, dword [rsi + 0xa0]
mov r15, rdx
sar eax, 0x10
or ebx, r12d
imul eax, ecx
mov r14, r8
mov ebp, r13d
mov dword [rsp + 0x28], r11d
movsxd rdx, eax
mov rax, qword [rsi + 0xa8]
lea r10, [rax + rdx*4]
mov edx, r9d
mov qword [rsp + 0x30], r10
mov ecx, dword [r15]
test ecx, ecx
mov r8d, dword [r14]
mov eax, r8d
cmovs ecx, r13d
sar eax, 0x10
cmp eax, r11d
jl 0x18008e5d1
mov r8d, r11d
shl r8d, 0x10
dec r8d
cmp r8d, ecx
jle 0x18008e9e6
mov ebp, ecx
mov eax, 0x88008801
movzx ecx, cx
mov r9d, r8d
add ecx, 0x788
sar ebp, 0x10
mul ecx
movzx ecx, r8w
mov eax, 0x88008801
add ecx, 0x788
sar r9d, 0x10
mov r13d, edx
movsxd rdi, ebp
mul ecx
add rdi, r10
shr r13d, 0xb
mov eax, edx
mov dword [rsp + 0x90], r9d
shr eax, 0xb
mov edx, 1
mov dword [rsp + 0x20], eax
mov rcx, rdi
cmp ebp, r9d
jne 0x18008e66c
call qword [rsi + 0xf0]
mov ecx, dword [rsp + 0x20]
mov r8d, 1
sub ecx, r13d
add eax, ecx
mov ecx, 0xff
cmp eax, ecx
movzx edx, al
cmovg edx, ecx
mov rcx, rdi
movzx edx, dl
call qword [rsi + 0xf8]
mov ebp, dword [rsp + 0xa8]
jmp 0x18008e9d7
call qword [rsi + 0xf0]
mov ecx, 0xff
mov edx, 0x11
sub edx, r13d
mov r8d, 1
add eax, edx
cmp eax, ecx
movzx edx, al
cmovg edx, ecx
mov rcx, rdi
movzx edx, dl
call qword [rsi + 0xf8]
mov eax, dword [rsp + 0x90]
inc ebp
mov r13d, eax
sub r13d, ebp
cmp r13d, 4
jle 0x18008e937
test r12d, r12d
jns 0x18008e6d3
mov r12d, ebp
mov ebx, eax
mov ebp, dword [rsp + 0xa8]
inc ebp
mov dword [rsp + 0xa8], ebp
jmp 0x18008e99c
cmp ebp, ebx
jge 0x18008e8b9
cmp eax, r12d
jl 0x18008e8b9
cmp ebp, r12d
jle 0x18008e75a
movsxd rdi, r12d
mov r13d, ebp
add rdi, qword [rsp + 0x30]
sub r13d, r12d
imul r12d, dword [rsp + 0xa8], 0x11
test r13d, r13d
je 0x18008e755
mov r15d, 0xff
nop dword [rax + rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, r12d
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub r13d, 1
jne 0x18008e710
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov r12d, ebp
jmp 0x18008e7c5
jge 0x18008e7c5
mov rcx, qword [rsp + 0x30]
mov r13d, r12d
movsxd rdi, ebp
add rdi, rcx
sub r13d, ebp
je 0x18008e7ca
mov r15d, 0xff
nop word [rax + rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, 0x11
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub r13d, 1
jne 0x18008e780
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov rcx, qword [rsp + 0x30]
cmp ebx, eax
jle 0x18008e84a
imul ebp, dword [rsp + 0xa8], 0x11
movsxd rdi, eax
add rdi, rcx
sub ebx, eax
je 0x18008e833
mov r15d, 0xff
nop word [rax + rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, ebp
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub ebx, 1
jne 0x18008e7f0
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov ebp, dword [rsp + 0xa8]
mov ebx, eax
inc ebp
mov dword [rsp + 0xa8], ebp
jmp 0x18008e99c
jge 0x18008e8a4
movsxd rdi, ebx
mov ebp, eax
add rdi, rcx
sub ebp, ebx
je 0x18008e8a4
mov r15d, 0xff
nop
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, 0x11
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub ebp, 1
jne 0x18008e860
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov ebp, dword [rsp + 0xa8]
inc ebp
mov dword [rsp + 0xa8], ebp
jmp 0x18008e99c
movsxd rdi, r12d
sub ebx, r12d
add rdi, qword [rsp + 0x30]
imul r12d, dword [rsp + 0xa8], 0x11
test ebx, ebx
je 0x18008e924
mov r15d, 0xff
nop word [rax + rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, r12d
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub ebx, 1
jne 0x18008e8e0
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov r12d, ebp
mov ebx, eax
mov ebp, 1
mov dword [rsp + 0xa8], ebp
jmp 0x18008e99c
movsxd rdi, ebp
add rdi, qword [rsp + 0x30]
test r13d, r13d
je 0x18008e995
mov r15d, 0xff
nop word [rax + rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, 0x11
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub r13d, 1
jne 0x18008e950
mov r15, qword [rsp + 0x98]
mov eax, dword [rsp + 0x90]
mov ebp, dword [rsp + 0xa8]
mov rdi, qword [rsp + 0x30]
mov edx, 1
cdqe
add rdi, rax
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, dword [rsp + 0x20]
mov ecx, 0xff
movzx edx, al
mov r8d, 1
cmp eax, ecx
cmovg edx, ecx
mov rcx, rdi
movzx edx, dl
call qword [rsi + 0xf8]
mov edx, dword [rsp + 0xa0]
xor r13d, r13d
mov r10, qword [rsp + 0x30]
cmp edx, dword [rsp + 0xb0]
je 0x18008eb90
cmp dx, 0xf777
je 0x18008ea5e
mov eax, dword [r15 + 0x18]
add dword [r15], eax
mov eax, dword [r15 + 0x20]
add dword [r15 + 4], eax
mov eax, dword [r15 + 4]
test eax, eax
jle 0x18008ea20
sub eax, dword [r15 + 0x10]
mov dword [r15 + 4], eax
mov eax, dword [r15 + 0xc]
add dword [r15], eax
mov eax, dword [r14 + 0x18]
add dword [r14], eax
mov eax, dword [r14 + 0x20]
add dword [r14 + 4], eax
mov eax, dword [r14 + 4]
test eax, eax
jle 0x18008ea46
sub eax, dword [r14 + 0x10]
mov dword [r14 + 4], eax
mov eax, dword [r14 + 0xc]
add dword [r14], eax
mov r11d, dword [rsp + 0x28]
mov eax, 0x1111
add edx, eax
mov dword [rsp + 0xa0], edx
jmp 0x18008e5b0
mov eax, dword [r15 + 0x1c]
add dword [r15], eax
mov eax, dword [r15 + 0x24]
add dword [r15 + 4], eax
mov eax, dword [r15 + 4]
test eax, eax
jle 0x18008ea84
sub eax, dword [r15 + 0x10]
mov dword [r15 + 4], eax
mov eax, dword [r15 + 0xc]
add dword [r15], eax
mov eax, dword [r14 + 0x1c]
add dword [r14], eax
mov eax, dword [r14 + 0x24]
add dword [r14 + 4], eax
mov eax, dword [r14 + 4]
test eax, eax
jle 0x18008eaaa
sub eax, dword [r14 + 0x10]
mov dword [r14 + 4], eax
mov eax, dword [r14 + 0xc]
add dword [r14], eax
cmp r12d, ebx
je 0x18008eb6a
cmp ebp, 0xf
jne 0x18008eafd
movsxd rax, r12d
movsxd rdi, ebx
mov rbx, r13
lea rbp, [rax + r10]
sub rdi, rax
je 0x18008eb59
mov r15d, 0xff
nop dword [rax]
nop dword [rax + rax]
lea rcx, [rbx + rbp]
mov r8d, 1
mov edx, r15d
call qword [rsi + 0xf8]
inc rbx
cmp rbx, rdi
jb 0x18008eae0
jmp 0x18008eb45
movsxd rdi, r12d
add rdi, r10
imul ebp, ebp, 0x11
sub ebx, r12d
je 0x18008eb59
mov r15d, 0xff
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
add eax, ebp
mov r8d, 1
movzx ecx, al
cmp eax, r15d
cmovg ecx, r15d
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub ebx, 1
jne 0x18008eb11
mov edx, dword [rsp + 0xa0]
mov r10, qword [rsp + 0x30]
mov r15, qword [rsp + 0x98]
or ebx, 0xffffffff
mov dword [rsp + 0xa8], r13d
or r12d, ebx
mov ebp, r13d
movsxd rax, dword [rsp + 0x24]
mov r11d, dword [rsp + 0x28]
lea r10, [r10 + rax*4]
mov eax, 0x1112
add edx, eax
mov qword [rsp + 0x30], r10
mov dword [rsp + 0xa0], edx
jmp 0x18008e5b0
cmp r12d, ebx
je 0x18008ec17
cmp ebp, 0xf
jne 0x18008ebcf
movsxd rax, r12d
movsxd rbx, ebx
lea rdi, [rax + r10]
sub rbx, rax
je 0x18008ec17
nop dword [rax]
lea rcx, [rdi + r13]
mov edx, 0xff
mov r8d, 1
call qword [rsi + 0xf8]
inc r13
cmp r13, rbx
jb 0x18008ebb0
jmp 0x18008ec17
movsxd rdi, r12d
add rdi, r10
imul ebp, ebp, 0x11
sub ebx, r12d
je 0x18008ec17
nop dword [rax]
mov edx, 1
mov rcx, rdi
call qword [rsi + 0xf0]
mov edx, 0xff
mov r8d, 1
add eax, ebp
cmp eax, edx
movzx ecx, al
cmovg ecx, edx
movzx edx, cl
mov rcx, rdi
call qword [rsi + 0xf8]
inc rdi
sub ebx, 1
jne 0x18008ebe0
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret