Function at 0x14005c510
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 0x14005c5f7
dec r8d
cmp byte [r10 + 0x10ee9], 0
je 0x14005c5cb
mov eax, dword [r10 + 0x10eec]
imul rcx, rax, 0x2c
cmp dword [r10 + 0x10ef0], 4
mov eax, dword [rcx + rbx + 0x10ee4]
jae 0x14005c5ba
cmp eax, 7
mov r13d, edx
cmovl r13d, r15d
jmp 0x14005c5da
cmp eax, 7
mov r13d, r11d
mov eax, 7
cmovl r13d, eax
jmp 0x14005c5da
mov eax, r8d
imul rcx, rax, 0x2c
mov r13d, dword [rcx + rbx + 0x10ee4]
cmp r13d, 3
jg 0x14005c5e5
xor r13d, r13d
jmp 0x14005c603
cmp r13d, 9
jg 0x14005c5f1
sub r13d, 3
jmp 0x14005c603
sub r13d, 6
jmp 0x14005c603
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 0x14005c66a
cmp dword [r10 + 0x10efc], 0
jne 0x14005c635
cmp r13d, 7
mov eax, 9
cmovl edx, eax
mov r13d, edx
mov dword [rsp + 0x30], edx
jmp 0x14005c77a
cmp r13d, 3
jg 0x14005c648
xor r13d, r13d
mov dword [rsp + 0x30], r13d
jmp 0x14005c77a
cmp r13d, 9
jg 0x14005c65c
sub r13d, 3
mov dword [rsp + 0x30], r13d
jmp 0x14005c77a
sub r13d, 6
mov dword [rsp + 0x30], r13d
jmp 0x14005c77a
test dil, dil
je 0x14005c6a1
cmp byte [r10 + 0x10ee9], 0
je 0x14005c6a1
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 0x14005c74b
jmp 0x14005c6c0
mov r9d, dword [r10 + 0x10efc]
cmp r9d, ebp
jae 0x14005c736
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 0x14005c702
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 0x14005c6e0
cmp r8d, ebp
jae 0x14005c77a
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 0x14005c720
jmp 0x14005c77a
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.14005bb10
movzx ecx, word [rbx + rdi*2 + 0x6b9c]
lea rdx, [0x140074160]
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 0x14005c880
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, [0x140074160]
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, [0x140074160]
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 0x14005c95a
cmp dword [rdi + 0x10ef8], r9d
jae 0x14005c8f8
cmp dword [rdi + 0x10efc], 0
je 0x14005c95a
movzx eax, word [rbx + rcx*2 + 0x6d34]
lea r9, [0x140074160]
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 0x14005c95a
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 0x14005d4e4
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 0x14005cb3b
cmp r14b, bpl
mov r14, qword [rsp + 0xe0]
je 0x14005cb43
mov eax, dword [r10]
mov r9, r14
sub r9, rax
inc edx
cmp ecx, edx
jae 0x14005c9b9
mov edx, ecx
mov ecx, 1
jmp 0x14005c9c2
mov ecx, 1
cmp edx, ecx
jbe 0x14005c9e6
mov eax, ecx
mov r8, qword [rax + r14]
sub r8, qword [r9 + rax - 1]
jne 0x14005c9d8
add ecx, 8
cmp ecx, edx
jb 0x14005c9c2
jmp 0x14005c9e6
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea edi, [rdx - 1]
cmp edi, 2
jb 0x14005cb43
mov ebp, dword [rsp + 0x30]
cmp ebp, 3
jg 0x14005c9ff
xor eax, eax
jmp 0x14005ca0a
lea eax, [rbp - 3]
cmp ebp, 9
jle 0x14005ca0a
lea eax, [rbp - 6]
mov r9d, dword [rsp + 0xf0]
lea r8, [0x140074160]
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 0x14005cab1
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 0x14005caa0
imul rax, r9, 0x110
lea r12, [0x140074160]
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 0x14005cb51
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 0x14005cb51
mov r14, qword [rsp + 0xe0]
mov ebp, dword [rsp + 0xf8]
lea r12, [0x140074160]
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 0x14005d014
mov eax, ecx
cmp r15d, 2
jbe 0x14005cba8
nop dword [rax + rax]
mov ecx, eax
mov rdx, qword [rcx + r14]
sub rdx, qword [r10 + rcx]
jne 0x14005cc33
add eax, 8
cmp eax, r15d
jb 0x14005cb90
mov edx, r15d
mov r11d, dword [rsp + 0xe8]
lea r9d, [rdx + rbp]
mov dword [rsp + 0x34], r9d
cmp r11d, r9d
jae 0x14005cbf2
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 0x14005cbe0
mov esi, edx
test r13d, r13d
jne 0x14005cc4a
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 0x14005ccc6
bsf rcx, rdx
mov edx, r15d
shr ecx, 3
add eax, ecx
cmp eax, r15d
cmovb edx, eax
jmp 0x14005cbab
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 0x14005cc84
movzx eax, word [rbx + r9*2 + 0x6d4c]
shr rax, 4
movzx eax, byte [rax + r12]
add r8d, eax
jmp 0x14005ccc6
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 0x14005cd21
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 0x14005cce0
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 0x14005cd7a
mov ecx, r9d
mov r8, r10
add rcx, r14
sub r8, r14
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14005cd7a
inc r9d
inc rcx
cmp r9d, edx
jb 0x14005cd66
mov eax, 0xffffffff
mov r12d, r9d
sub eax, esi
add r9d, eax
cmp r9d, 2
jb 0x14005d008
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, [0x140074160]
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 0x14005ce10
cmp dword [rsp + 0x30], 7
lea rdi, [0x140074160]
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 0x14005ceac
mov eax, 8
lea ecx, [rax - 3]
jmp 0x14005ceb6
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 0x14005cf61
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 0x14005cf50
mov r15d, dword [rsp + 0x40]
lea r12, [0x140074160]
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 0x14005d00f
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 0x14005d00f
lea r12, [0x140074160]
mov ecx, 2
mov r10, qword [rsp + 0xd8]
inc r13d
add r10, 4
mov qword [rsp + 0xd8], r10
cmp r13d, 4
jb 0x14005cb60
mov ecx, dword [rsp + 0x3c]
cmp ecx, r15d
jbe 0x14005d06a
xor edx, edx
mov ecx, r15d
cmp r15d, dword [rbx + 0x2f4]
jbe 0x14005d05c
nop dword [rax]
inc edx
cmp r15d, dword [rbx + rdx*8 + 0x2f4]
ja 0x14005d050
mov dword [rbx + rdx*8 + 0x2f4], r15d
inc edx
mov dword [rsp + 0x48], edx
cmp ecx, edi
jb 0x14005d4e4
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 0x14005d0d1
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 0x14005d0c0
xor r15d, r15d
cmp edi, dword [rbx + 0x2f4]
jbe 0x14005d0ed
nop dword [rax]
inc r15d
cmp edi, dword [rbx + r15*8 + 0x2f4]
ja 0x14005d0e0
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 0x14005d15d
mov eax, 3
mov r8d, eax
lea r11d, [rdi - 2]
mov r9, rsi
cmp esi, 0x80
jae 0x14005d180
shl r8, 7
add r8, rsi
mov ecx, dword [rbx + r8*4 + 0x10690]
jmp 0x14005d1af
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 0x14005d1fa
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 0x14005d4cc
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 0x14005d254
mov ecx, r10d
lea r8, [r11 - 1]
add rcx, rsi
sub r8, rsi
nop
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x14005d254
inc r10d
inc rcx
cmp r10d, edx
jb 0x14005d240
mov eax, 0xffffffff
mov dword [rsp + 0x3c], r10d
sub eax, edi
add r10d, eax
cmp r10d, 2
jb 0x14005d4c2
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, [0x140074160]
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 0x14005d2e0
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 0x14005d36b
mov eax, 7
lea ecx, [rax - 3]
jmp 0x14005d375
mov eax, 4
mov ecx, 1
mov r8d, dword [rsp + 0x3c]
lea r9d, [r13 + 1]
mov ebp, dword [rsp + 0xf8]
lea r13, [0x140074160]
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 0x14005d421
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 0x14005d410
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 0x14005d4c2
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 0x14005d4e4
mov edx, dword [rsp + 0x38]
inc r14d
mov rbp, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x100]
jmp 0x14005d140
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