Function at 0x140099c20
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov ebp, dword [rsp + 0xf8]
mov r14, rdx
mov eax, dword [rcx + 0xb84]
mov edx, reloc.WS2_32.dll_inet_addr
imul r10, rbp, 0x2c
mov dword [rsp + 0x48], eax
mov r12, r8
mov eax, dword [rcx + 0xb88]
lea r15d, [rdx - 3]
add r10, rcx
mov dword [rsp + 0x3c], eax
mov rbx, rcx
lea r11d, [rdx - 1]
mov esi, ebp
movzx edi, byte [r10 + 0x10ee8]
mov r8d, dword [r10 + 0x10ef8]
test dil, dil
je 0x140099d07
dec r8d
cmp byte [r10 + 0x10ee9], 0
je 0x140099cdb
mov eax, dword [r10 + 0x10eec]
imul rcx, rax, 0x2c
cmp dword [r10 + 0x10ef0], 4
mov eax, dword [rcx + rbx + 0x10ee4]
jae 0x140099cca
cmp eax, 7
mov r13d, edx
cmovl r13d, r15d
jmp 0x140099cea
cmp eax, 7
mov r13d, r11d
mov eax, 7
cmovl r13d, eax
jmp 0x140099cea
mov eax, r8d
imul rcx, rax, 0x2c
mov r13d, dword [rcx + rbx + 0x10ee4]
cmp r13d, 3
jg 0x140099cf5
xor r13d, r13d
jmp 0x140099d13
cmp r13d, 9
jg 0x140099d01
sub r13d, 3
jmp 0x140099d13
sub r13d, 6
jmp 0x140099d13
imul rcx, r8, 0x2c
mov r13d, dword [rcx + rbx + 0x10ee4]
lea eax, [rbp - 1]
mov ecx, 1
lea ebp, [rcx + 3]
cmp r8d, eax
jne 0x140099d7a
cmp dword [r10 + 0x10efc], 0
jne 0x140099d45
cmp r13d, 7
mov eax, 9
cmovl edx, eax
mov r13d, edx
mov dword [rsp + 0x30], edx
jmp 0x140099e8a
cmp r13d, 3
jg 0x140099d58
xor r13d, r13d
mov dword [rsp + 0x30], r13d
jmp 0x140099e8a
cmp r13d, 9
jg 0x140099d6c
sub r13d, 3
mov dword [rsp + 0x30], r13d
jmp 0x140099e8a
sub r13d, 6
mov dword [rsp + 0x30], r13d
jmp 0x140099e8a
test dil, dil
je 0x140099db1
cmp byte [r10 + 0x10ee9], 0
je 0x140099db1
mov r9d, dword [r10 + 0x10ef0]
cmp r13d, 7
mov r8d, dword [r10 + 0x10eec]
cmovl edx, r15d
mov dword [rsp + 0x30], edx
mov r13d, edx
cmp r9d, ebp
jae 0x140099e5b
jmp 0x140099dd0
mov r9d, dword [r10 + 0x10efc]
cmp r9d, ebp
jae 0x140099e46
cmp r13d, 7
cmovl edx, r15d
mov r13d, edx
mov dword [rsp + 0x30], edx
mov edi, r8d
mov r8d, ecx
imul r11, rdi, 0xb
mov eax, r9d
add rax, r11
mov eax, dword [rbx + rax*4 + 0x10f00]
mov dword [r14], eax
cmp r9d, ecx
jb 0x140099e12
nop
lea ecx, [r8 - 1]
mov edx, r8d
add rcx, r11
inc r8d
mov eax, dword [rbx + rcx*4 + 0x10f00]
mov dword [r14 + rdx*4], eax
cmp r8d, r9d
jbe 0x140099df0
cmp r8d, ebp
jae 0x140099e8a
imul r9, rdi, 0x2c
mov eax, r8d
mov edx, ebp
sub r9, r14
add r9, rbx
sub edx, r8d
lea rcx, [r14 + rax*4]
nop dword [rax + rax]
mov eax, dword [r9 + rcx + 0x10f00]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140099e30
jmp 0x140099e8a
cmp r13d, 7
mov eax, 7
cmovl r11d, eax
mov r13d, r11d
mov dword [rsp + 0x30], r11d
lea eax, [r9 - 4]
mov dword [r14], eax
mov eax, r8d
imul rcx, rax, 0xb
mov eax, dword [rbx + rcx*4 + 0x10f00]
mov dword [r14 + 4], eax
mov eax, dword [rbx + rcx*4 + 0x10f04]
mov dword [r14 + 8], eax
mov eax, dword [rbx + rcx*4 + 0x10f08]
mov dword [r14 + 0xc], eax
mov dword [r10 + 0x10ee4], r13d
mov eax, dword [r14]
imul rcx, rsi, 0xb
mov dword [rbx + rcx*4 + 0x10f00], eax
mov eax, dword [r14 + 4]
mov dword [rbx + rcx*4 + 0x10f04], eax
mov eax, dword [r14 + 8]
mov dword [rbx + rcx*4 + 0x10f08], eax
mov eax, dword [r14 + 0xc]
mov dword [rbx + rcx*4 + 0x10f0c], eax
mov rcx, r12
mov eax, dword [r14]
mov r15d, dword [r10 + 0x10ef4]
sub rcx, rax
mov r10d, dword [rsp + 0xf0]
mov edx, dword [rbx + 0xb90]
movzx ebp, byte [r12]
and rdx, r10
movzx r14d, byte [rcx - 1]
movzx r8d, byte [r12 - 1]
movsxd rcx, r13d
mov rdi, rcx
mov qword [rsp + 0x60], rcx
shl rdi, 4
mov rcx, rbx
add rdi, rdx
mov qword [rsp + 0x70], rdx
cmp r13d, 7
mov dword [rsp + 0x28], ebp
mov edx, r10d
mov qword [rsp + 0x58], rdi
setge r9b
mov dword [rsp + 0x20], r14d
call fcn.140099220
movzx ecx, word [rbx + rdi*2 + 0x6b9c]
lea rdx, [0x1400bcf60]
mov r9d, dword [rsp + 0xf8]
add eax, r15d
shr rcx, 4
xor r11b, r11b
lea r13d, [r9 + 1]
movzx r12d, byte [rcx + rdx]
add r12d, eax
mov eax, r13d
imul rdi, rax, 0x2c
add rdi, rbx
mov esi, dword [rdi + 0x10ef4]
cmp r12d, esi
jae 0x140099f90
mov dword [rdi + 0x10ef4], r12d
mov esi, r12d
mov dword [rdi + 0x10ef8], r9d
mov byte [rdi + 0x10ee8], r11b
mov r11b, 1
mov dword [rdi + 0x10efc], 0xffffffff
mov rax, qword [rsp + 0x58]
lea rcx, [0x1400bcf60]
movzx eax, word [rbx + rax*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx eax, byte [rax + rcx]
mov rcx, qword [rsp + 0x60]
add eax, r15d
mov dword [rsp + 0x38], eax
lea r15, [0x1400bcf60]
lea rax, [rcx + 0x368e]
lea rax, [rbx + rax*2]
mov qword [rsp + 0x68], rax
movzx eax, word [rax]
xor rax, 0x7f0
shr rax, 4
movzx r15d, byte [rax + r15]
add r15d, dword [rsp + 0x38]
mov dword [rsp + 0x4c], r15d
cmp r14b, bpl
jne 0x14009a06a
cmp dword [rdi + 0x10ef8], r9d
jae 0x14009a008
cmp dword [rdi + 0x10efc], 0
je 0x14009a06a
movzx eax, word [rbx + rcx*2 + 0x6d34]
lea r9, [0x1400bcf60]
shr rax, 4
movzx ecx, byte [rax + r9]
mov rax, qword [rsp + 0x58]
movzx eax, word [rbx + rax*2 + 0x6d7c]
shr rax, 4
movzx r9d, byte [rax + r9]
lea eax, [r15 + rcx]
add r9d, eax
cmp r9d, esi
ja 0x14009a06a
mov eax, dword [rsp + 0xf8]
mov r11b, 1
mov dword [rdi + 0x10ef8], eax
mov dword [rdi + 0x10ef4], r9d
mov dword [rdi + 0x10efc], 0
mov byte [rdi + 0x10ee8], 0
mov ecx, dword [rsp + 0x108]
cmp ecx, 2
jb 0x14009abf4
mov edx, dword [rsp + 0x100]
mov r15d, edx
mov r10, qword [rsp + 0xd8]
cmp ecx, edx
cmovb r15d, ecx
mov dword [rsp + 0x40], r15d
test r11b, r11b
jne 0x14009a24b
cmp r14b, bpl
mov r14, qword [rsp + 0xe0]
je 0x14009a253
mov eax, dword [r10]
mov r9, r14
sub r9, rax
inc edx
cmp ecx, edx
jae 0x14009a0c9
mov edx, ecx
mov ecx, 1
jmp 0x14009a0d2
mov ecx, 1
cmp edx, ecx
jbe 0x14009a0f6
mov eax, ecx
mov r8, qword [rax + r14]
sub r8, qword [r9 + rax - 1]
jne 0x14009a0e8
add ecx, 8
cmp ecx, edx
jb 0x14009a0d2
jmp 0x14009a0f6
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea edi, [rdx - 1]
cmp edi, 2
jb 0x14009a253
mov ebp, dword [rsp + 0x30]
cmp ebp, 3
jg 0x14009a10f
xor eax, eax
jmp 0x14009a11a
lea eax, [rbp - 3]
cmp ebp, 9
jle 0x14009a11a
lea eax, [rbp - 6]
mov r9d, dword [rsp + 0xf0]
lea r8, [0x1400bcf60]
mov ebp, dword [rsp + 0xf8]
inc r9d
movsxd r10, eax
mov eax, dword [rbx + 0xb90]
mov rsi, r10
and r9, rax
shl rsi, 4
add rsi, r9
movzx eax, word [rbx + r10*2 + 0x6d1c]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r8]
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx r11d, byte [rax + r8]
lea eax, [r12 + rcx]
mov r12d, dword [rsp + 0xe8]
lea r8d, [rdx + rbp]
add r11d, eax
cmp r12d, r8d
jae 0x14009a1c1
imul rdx, r12, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10ef4
add rdx, rbx
sub ecx, r12d
nop dword [rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14009a1b0
imul rax, r9, 0x110
lea r12, [0x1400bcf60]
lea ecx, [rdi - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
movzx eax, byte [rax + r12]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x6d34]
mov r10, qword [rsp + 0xd8]
shr rax, 4
movzx edx, byte [rax + r12]
lea eax, [r11 + rcx]
add edx, eax
mov eax, r8d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14009a261
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10ef8], r13d
mov dword [rcx + rbx + 0x10efc], 0
mov word [rcx + rbx + 0x10ee8], 1
jmp 0x14009a261
mov r14, qword [rsp + 0xe0]
mov ebp, dword [rsp + 0xf8]
lea r12, [0x1400bcf60]
mov ecx, 2
xor r13d, r13d
mov edi, ecx
nop dword [rax + rax]
mov eax, dword [r10]
mov r10, r14
sub r10, rax
movzx eax, word [r10 - 1]
dec r10
mov qword [rsp + 0x78], r10
cmp word [r14], ax
jne 0x14009a724
mov eax, ecx
cmp r15d, 2
jbe 0x14009a2b8
nop dword [rax + rax]
mov ecx, eax
mov rdx, qword [rcx + r14]
sub rdx, qword [r10 + rcx]
jne 0x14009a343
add eax, 8
cmp eax, r15d
jb 0x14009a2a0
mov edx, r15d
mov r11d, dword [rsp + 0xe8]
lea r9d, [rdx + rbp]
mov dword [rsp + 0x34], r9d
cmp r11d, r9d
jae 0x14009a302
imul r8, r11, 0x2c
mov ecx, r9d
mov dword [rsp + 0xe8], r9d
add r8, 0x10ef4
add r8, rbx
sub ecx, r11d
nop dword [rax]
mov dword [r8 + 0x2c], 0x40000000
lea r8, [r8 + 0x2c]
sub rcx, 1
jne 0x14009a2f0
mov esi, edx
test r13d, r13d
jne 0x14009a35a
mov rax, qword [rsp + 0x58]
movzx eax, word [rbx + rax*2 + 0x6d7c]
xor rax, 0x7f0
shr rax, 4
movzx r8d, byte [rax + r12]
mov rax, qword [rsp + 0x60]
movzx eax, word [rbx + rax*2 + 0x6d34]
shr rax, 4
movzx eax, byte [rax + r12]
add r8d, eax
jmp 0x14009a3d6
bsf rcx, rdx
mov edx, r15d
shr ecx, 3
add eax, ecx
cmp eax, r15d
cmovb edx, eax
jmp 0x14009a2bb
mov r9, qword [rsp + 0x60]
movzx eax, word [rbx + r9*2 + 0x6d34]
xor rax, 0x7f0
shr rax, 4
movzx r8d, byte [rax + r12]
cmp r13d, 1
jne 0x14009a394
movzx eax, word [rbx + r9*2 + 0x6d4c]
shr rax, 4
movzx eax, byte [rax + r12]
add r8d, eax
jmp 0x14009a3d6
movzx ecx, word [rbx + r9*2 + 0x6d64]
mov eax, 2
sub eax, r13d
shr rcx, 4
shr rax, 4
and eax, 0x7f
xor rcx, rax
movzx eax, word [rbx + r9*2 + 0x6d4c]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rcx + r12]
movzx eax, byte [rax + r12]
add r8d, eax
add r8d, ecx
mov r10d, dword [rsp + 0x4c]
add r10d, r8d
imul r11, qword [rsp + 0x70], 0x110
mov dword [rsp + 0x50], r10d
nop dword [rax]
lea ecx, [rdx - 2]
add rcx, r11
mov r8d, dword [rbx + rcx*4 + 0xbe4c]
lea ecx, [rdx + rbp]
imul rax, rcx, 0x2c
add r8d, r10d
cmp r8d, dword [rax + rbx + 0x10ef4]
jae 0x14009a431
mov dword [rax + rbx + 0x10ef4], r8d
mov dword [rax + rbx + 0x10ef8], ebp
mov dword [rax + rbx + 0x10efc], r13d
mov byte [rax + rbx + 0x10ee8], 0
dec edx
cmp edx, 2
jae 0x14009a3f0
mov edx, dword [rsp + 0x100]
lea r9d, [rsi + 1]
mov r10, qword [rsp + 0x78]
test r13d, r13d
cmove edi, r9d
add edx, r9d
cmp dword [rsp + 0x108], edx
mov dword [rsp + 0x44], edi
cmovb edx, dword [rsp + 0x108]
cmp r9d, edx
jae 0x14009a48a
mov ecx, r9d
mov r8, r10
add rcx, r14
sub r8, r14
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14009a48a
inc r9d
inc rcx
cmp r9d, edx
jb 0x14009a476
mov eax, 0xffffffff
mov r12d, r9d
sub eax, esi
add r9d, eax
cmp r9d, 2
jb 0x14009a718
mov edi, dword [rsp + 0xf0]
lea eax, [rsi - 1]
add edi, esi
lea ecx, [rsi - 2]
add rcx, r11
mov r8, rsi
movzx r11d, byte [rsi + r10]
mov r14d, edi
mov r10, qword [rsp + 0xe0]
xor esi, esi
and r14d, dword [rbx + 0xb90]
mov r15d, dword [rbx + rcx*4 + 0xbe4c]
mov ecx, 8
sub cl, byte [rbx + 0xb94]
movzx edx, byte [rax + r10]
mov eax, dword [rbx + 0xb98]
movzx r10d, byte [r8 + r10]
and eax, edi
shr edx, cl
mov edi, 0x100
mov ecx, dword [rbx + 0xb94]
shl eax, cl
add edx, eax
lea rbp, [rdx + rdx*2]
shl rbp, 9
add rbp, rbx
lea rbx, [0x1400bcf60]
add r10d, edi
nop word [rax + rax]
mov ecx, r10d
add r11d, r11d
shr ecx, 8
mov eax, edi
and eax, r11d
add eax, edi
add ecx, eax
movzx edx, word [rbp + rcx*2 + 0xb9c]
mov ecx, r10d
shr ecx, 7
add r10d, r10d
and ecx, 1
shr rdx, 4
neg ecx
shr rcx, 4
and ecx, 0x7f
xor rdx, rcx
movzx eax, byte [rdx + rbx]
add esi, eax
mov eax, r11d
xor eax, r10d
not eax
and edi, eax
cmp r10d, 0x10000
jb 0x14009a520
cmp dword [rsp + 0x30], 7
lea rdi, [0x1400bcf60]
mov rbx, qword [rsp + 0xd0]
mov eax, 0x364e
mov ecx, 0x367e
cmovl ecx, eax
mov eax, r14d
add rcx, rax
movzx eax, word [rbx + rcx*2]
shr rax, 4
movzx edx, byte [rax + rdi]
add edx, esi
add edx, r15d
add edx, dword [rsp + 0x50]
cmp dword [rsp + 0x30], 7
jge 0x14009a5bc
mov eax, 8
lea ecx, [rax - 3]
jmp 0x14009a5c6
mov eax, 5
mov ecx, 2
mov r10d, dword [rsp + 0xf0]
cmovl eax, ecx
mov ebp, dword [rsp + 0xf8]
lea ecx, [r8 + 1]
mov r14d, dword [rsp + 0xe8]
add r10d, ecx
mov r11d, eax
mov eax, dword [rbx + 0xb90]
mov esi, r11d
and r10, rax
shl rsi, 4
add rsi, r10
lea r8d, [r12 + rbp]
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + rdi]
movzx eax, word [rbx + r11*2 + 0x6d1c]
xor rax, 0x7f0
shr rax, 4
movzx edi, byte [rax + rdi]
lea eax, [rdx + rcx]
add edi, eax
cmp r14d, r8d
jae 0x14009a671
imul rdx, r14, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10ef4
add rdx, rbx
sub ecx, r14d
nop dword [rax]
nop dword [rax + rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14009a660
mov r15d, dword [rsp + 0x40]
lea r12, [0x1400bcf60]
mov r14, qword [rsp + 0xe0]
lea ecx, [r9 - 2]
imul rax, r10, 0x110
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
movzx eax, byte [rax + r12]
add ecx, eax
movzx eax, word [rbx + r11*2 + 0x6d34]
shr rax, 4
movzx edx, byte [rax + r12]
lea eax, [rdi + rcx]
mov edi, dword [rsp + 0x44]
add edx, eax
mov eax, r8d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14009a71f
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10ef8], eax
mov dword [rcx + rbx + 0x10efc], 0
mov word [rcx + rbx + 0x10ee8], 0x101
mov dword [rcx + rbx + 0x10eec], ebp
mov dword [rcx + rbx + 0x10ef0], r13d
jmp 0x14009a71f
lea r12, [0x1400bcf60]
mov ecx, 2
mov r10, qword [rsp + 0xd8]
inc r13d
add r10, 4
mov qword [rsp + 0xd8], r10
cmp r13d, 4
jb 0x14009a270
mov ecx, dword [rsp + 0x3c]
cmp ecx, r15d
jbe 0x14009a77a
xor edx, edx
mov ecx, r15d
cmp r15d, dword [rbx + 0x2f4]
jbe 0x14009a76c
nop dword [rax]
inc edx
cmp r15d, dword [rbx + rdx*8 + 0x2f4]
ja 0x14009a760
mov dword [rbx + rdx*8 + 0x2f4], r15d
inc edx
mov dword [rsp + 0x48], edx
cmp ecx, edi
jb 0x14009abf4
mov rax, qword [rsp + 0x68]
lea r8d, [rcx + rbp]
mov r9d, dword [rsp + 0xe8]
movzx eax, word [rax]
shr rax, 4
movzx r13d, byte [rax + r12]
add r13d, dword [rsp + 0x38]
mov dword [rsp + 0xd0], r13d
cmp r9d, r8d
jae 0x14009a7e1
imul rdx, r9, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10ef4
add rdx, rbx
sub ecx, r9d
nop dword [rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14009a7d0
xor r15d, r15d
cmp edi, dword [rbx + 0x2f4]
jbe 0x14009a7fd
nop dword [rax]
inc r15d
cmp edi, dword [rbx + r15*8 + 0x2f4]
ja 0x14009a7f0
mov ecx, dword [rsp + 0x100]
mov edx, ecx
imul rbp, qword [rsp + 0x70], 0x110
mov r12d, dword [rsp + 0xf8]
lea r14d, [rcx + 1]
neg edx
mov qword [rsp + 0x68], rbp
sub r12d, ecx
mov dword [rsp + 0x38], edx
add r14d, edi
mov dword [rsp + 0xd8], r12d
sub dword [rsp + 0xf0], ecx
not ecx
mov dword [rsp + 0x100], ecx
nop dword [rax]
nop dword [rax + rax]
mov esi, dword [rbx + r15*8 + 0x2f8]
lea edi, [rcx + r14]
mov dword [rsp + 0x34], esi
lea eax, [rdi - 2]
cmp edi, 6
jb 0x14009a86d
mov eax, 3
mov r8d, eax
lea r11d, [rdi - 2]
mov r9, rsi
cmp esi, 0x80
jae 0x14009a890
shl r8, 7
add r8, rsi
mov ecx, dword [rbx + r8*4 + 0x10690]
jmp 0x14009a8bf
bsr edx, esi
mov eax, esi
shl r8, 6
lea ecx, [rdx - 1]
shr eax, cl
and eax, 1
lea ecx, [rax + rdx*2]
mov edx, dword [rsp + 0x38]
add rcx, r8
mov rax, r9
and eax, 0xf
mov ecx, dword [rbx + rcx*4 + 0x10290]
add ecx, dword [rbx + rax*4 + 0x10e98]
mov eax, r11d
add rax, rbp
mov ebp, dword [rbx + rax*4 + 0x7604]
add ebp, ecx
lea ecx, [r14 - 1]
add ecx, r12d
add ebp, r13d
imul rcx, rcx, 0x2c
add rcx, rbx
cmp ebp, dword [rcx + 0x10ef4]
jae 0x14009a90a
mov eax, dword [rsp + 0xf8]
mov dword [rcx + 0x10ef8], eax
lea eax, [rsi + 4]
mov dword [rcx + 0x10efc], eax
mov dword [rcx + 0x10ef4], ebp
mov byte [rcx + 0x10ee8], 0
cmp edi, dword [rbx + r15*8 + 0x2f4]
jne 0x14009abdc
mov rsi, qword [rsp + 0xe0]
lea r10d, [rdx + r14]
mov r11, rsi
mov edx, r14d
sub r11, r9
cmp dword [rsp + 0x108], r14d
cmovb edx, dword [rsp + 0x108]
cmp r10d, edx
jae 0x14009a964
mov ecx, r10d
lea r8, [r11 - 1]
add rcx, rsi
sub r8, rsi
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14009a964
inc r10d
inc rcx
cmp r10d, edx
jb 0x14009a950
mov eax, 0xffffffff
mov dword [rsp + 0x3c], r10d
sub eax, edi
add r10d, eax
cmp r10d, 2
jb 0x14009abd2
mov r8d, dword [rsp + 0xf0]
lea eax, [rdi - 1]
movzx edx, byte [rax + rsi]
dec r8d
mov eax, dword [rbx + 0xb98]
add r8d, r14d
mov r13d, dword [rbx + 0xb90]
and eax, r8d
movzx r11d, byte [rdi + r11 - 1]
mov ecx, 8
sub cl, byte [rbx + 0xb94]
and r13d, r8d
shr edx, cl
xor esi, esi
mov ecx, dword [rbx + 0xb94]
shl eax, cl
add edx, eax
mov r9d, edi
mov rax, qword [rsp + 0xe0]
mov edi, 0x100
lea r12, [rdx + rdx*2]
movzx r8d, byte [r9 + rax]
lea r9, [0x1400bcf60]
shl r12, 9
add r12, rbx
add r8d, edi
nop
mov ecx, r8d
add r11d, r11d
shr ecx, 8
mov eax, edi
and eax, r11d
add eax, edi
add ecx, eax
movzx edx, word [r12 + rcx*2 + 0xb9c]
mov ecx, r8d
shr ecx, 7
add r8d, r8d
and ecx, 1
shr rdx, 4
neg ecx
shr rcx, 4
and ecx, 0x7f
xor rdx, rcx
movzx eax, byte [rdx + r9]
add esi, eax
mov eax, r11d
xor eax, r8d
not eax
and edi, eax
cmp r8d, 0x10000
jb 0x14009a9f0
cmp dword [rsp + 0x30], 7
mov eax, 0x363e
mov ecx, 0x366e
cmovl ecx, eax
mov eax, r13d
add rcx, rax
movzx eax, word [rbx + rcx*2]
shr rax, 4
movzx edx, byte [rax + r9]
add edx, esi
add edx, ebp
cmp dword [rsp + 0x30], 7
jge 0x14009aa7b
mov eax, 7
lea ecx, [rax - 3]
jmp 0x14009aa85
mov eax, 4
mov ecx, 1
mov r8d, dword [rsp + 0x3c]
lea r9d, [r13 + 1]
mov ebp, dword [rsp + 0xf8]
lea r13, [0x1400bcf60]
mov r12d, dword [rsp + 0xe8]
cmovl eax, ecx
mov r11d, eax
add r8d, ebp
mov eax, dword [rbx + 0xb90]
mov esi, r11d
and r9, rax
shl rsi, 4
add rsi, r9
movzx eax, word [rbx + rsi*2 + 0x6b9c]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r13]
movzx eax, word [rbx + r11*2 + 0x6d1c]
xor rax, 0x7f0
shr rax, 4
movzx edi, byte [rax + r13]
lea eax, [rdx + rcx]
add edi, eax
cmp r12d, r8d
jae 0x14009ab31
imul rdx, r12, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10ef4
add rdx, rbx
sub ecx, r12d
nop word [rax + rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14009ab20
mov r12d, dword [rsp + 0xd8]
lea ecx, [r10 - 2]
imul rax, r9, 0x110
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d7c]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe4c]
movzx eax, byte [rax + r13]
add ecx, eax
movzx eax, word [rbx + r11*2 + 0x6d34]
shr rax, 4
movzx edx, byte [rax + r13]
lea eax, [rdi + rcx]
mov r13d, dword [rsp + 0xd0]
add edx, eax
mov eax, r8d
imul rcx, rax, 0x2c
cmp edx, dword [rcx + rbx + 0x10ef4]
jae 0x14009abd2
lea eax, [r12 + r14]
mov dword [rcx + rbx + 0x10ef4], edx
mov dword [rcx + rbx + 0x10ef8], eax
mov eax, dword [rsp + 0x34]
add eax, 4
mov dword [rcx + rbx + 0x10efc], 0
mov dword [rcx + rbx + 0x10ef0], eax
mov word [rcx + rbx + 0x10ee8], 0x101
mov dword [rcx + rbx + 0x10eec], ebp
inc r15d
cmp r15d, dword [rsp + 0x48]
je 0x14009abf4
mov edx, dword [rsp + 0x38]
inc r14d
mov rbp, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x100]
jmp 0x14009a850
mov eax, dword [rsp + 0xe8]
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret