Function at 0x14012e360
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 eax, dword [rcx + 0xb6c]
mov rbx, rcx
mov r12d, dword [rsp + 0xf8]
mov rbp, rdx
mov edx, reloc.WS2_32.dll_inet_addr
mov dword [rsp + 0x4c], eax
mov eax, dword [rcx + 0xb70]
mov r15, r8
imul r11, r12, 0x2c
mov dword [rsp + 0x3c], eax
mov esi, r12d
add r11, rbx
lea edi, [rdx - 4]
lea rax, [r12 + 0x628]
imul rcx, rax, 0x2c
movzx r9d, byte [r11 + 0x10ed0]
lea r14d, [rdx - 3]
lea r8d, [rdx - 1]
mov r10d, dword [rcx + rbx]
test r9b, r9b
je 0x14012e44e
dec r10d
cmp byte [r11 + 0x10ed1], 0
je 0x14012e422
mov eax, dword [r11 + 0x10ed4]
imul rcx, rax, 0x2c
cmp dword [r11 + 0x10ed8], 4
mov eax, dword [rcx + rbx + 0x10ecc]
jae 0x14012e417
cmp eax, edi
mov r13d, edx
cmovl r13d, r14d
jmp 0x14012e431
cmp eax, edi
mov r13d, r8d
cmovl r13d, edi
jmp 0x14012e431
mov eax, r10d
imul rcx, rax, 0x2c
mov r13d, dword [rcx + rbx + 0x10ecc]
cmp r13d, 3
jg 0x14012e43c
xor r13d, r13d
jmp 0x14012e45a
cmp r13d, 9
jg 0x14012e448
sub r13d, 3
jmp 0x14012e45a
sub r13d, 6
jmp 0x14012e45a
imul rcx, r10, 0x2c
mov r13d, dword [rcx + rbx + 0x10ecc]
lea eax, [r12 - 1]
cmp r10d, eax
jne 0x14012e4ba
cmp dword [r11 + 0x10ee4], 0
jne 0x14012e485
cmp r13d, edi
mov eax, 9
cmovl edx, eax
mov r13d, edx
mov dword [rsp + 0x30], edx
jmp 0x14012e5e4
cmp r13d, 3
jg 0x14012e498
xor r13d, r13d
mov dword [rsp + 0x30], r13d
jmp 0x14012e5e4
cmp r13d, 9
jg 0x14012e4ac
sub r13d, 3
mov dword [rsp + 0x30], r13d
jmp 0x14012e5e4
sub r13d, 6
mov dword [rsp + 0x30], r13d
jmp 0x14012e5e4
test r9b, r9b
je 0x14012e4f6
cmp byte [r11 + 0x10ed1], 0
je 0x14012e4f6
mov edi, dword [r11 + 0x10ed4]
mov r9d, dword [r11 + 0x10ed8]
imul r10, rdi, 0xb
cmp r13d, 7
cmovl edx, r14d
mov dword [rsp + 0x30], edx
mov r13d, edx
cmp r9d, 4
jae 0x14012e5bc
jmp 0x14012e51c
mov r9d, dword [r11 + 0x10ee4]
cmp r9d, 4
jae 0x14012e5a6
cmp r13d, edi
mov edi, r10d
cmovl edx, r14d
mov r13d, edx
mov dword [rsp + 0x30], edx
imul r10, rdi, 0xb
mov eax, r9d
mov r8d, 1
add rax, r10
mov eax, dword [rbx + rax*4 + 0x10ee8]
mov dword [rbp], eax
cmp r9d, r8d
jb 0x14012e567
nop word [rax + rax]
lea ecx, [r8 - 1]
mov edx, r8d
add rcx, r10
inc r8d
mov eax, dword [rbx + rcx*4 + 0x10ee8]
mov dword [rbp + rdx*4], eax
cmp r8d, r9d
jbe 0x14012e540
cmp r8d, 4
jae 0x14012e5e4
imul r9, rdi, 0x2c
mov eax, r8d
mov edx, 4
sub r9, rbp
add r9, rbx
lea rcx, [rax*4]
add rcx, rbp
sub edx, r8d
nop word [rax + rax]
mov eax, dword [r9 + rcx + 0x10ee8]
mov dword [rcx], eax
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x14012e590
jmp 0x14012e5e4
cmp r13d, edi
mov eax, r10d
cmovl r8d, edi
mov r13d, r8d
mov dword [rsp + 0x30], r8d
imul r10, rax, 0xb
lea eax, [r9 - 4]
mov dword [rbp], eax
mov eax, dword [rbx + r10*4 + 0x10ee8]
mov dword [rbp + 4], eax
mov eax, dword [rbx + r10*4 + 0x10eec]
mov dword [rbp + 8], eax
mov eax, dword [rbx + r10*4 + 0x10ef0]
mov dword [rbp + 0xc], eax
mov edx, dword [rsp + 0xf0]
mov dword [r11 + 0x10ecc], r13d
mov eax, dword [rbp]
imul rcx, rsi, 0xb
mov dword [rbx + rcx*4 + 0x10ee8], eax
mov eax, dword [rbp + 4]
mov dword [rbx + rcx*4 + 0x10eec], eax
mov eax, dword [rbp + 8]
mov dword [rbx + rcx*4 + 0x10ef0], eax
mov eax, dword [rbp + 0xc]
mov dword [rbx + rcx*4 + 0x10ef4], eax
mov rcx, r15
and edx, dword [rbx + 0xb78]
mov eax, dword [rbp]
movzx esi, byte [r15]
sub rcx, rax
movzx r8d, byte [r15 - 1]
mov r14d, dword [r11 + 0x10edc]
mov qword [rsp + 0x70], rdx
movzx ebp, byte [rcx - 1]
movsxd rcx, r13d
mov rax, rcx
mov qword [rsp + 0x68], rcx
shl rax, 4
mov rcx, rbx
add rax, rdx
mov dword [rsp + 0x28], esi
mov edx, dword [rsp + 0xf0]
cmp r13d, 7
mov qword [rsp + 0x58], rax
setge r9b
mov dword [rsp + 0x20], ebp
movzx edi, word [rbx + rax*2 + 0x6b84]
call fcn.14012dae0
add eax, r14d
lea r9, [0x140000000]
xor r10b, r10b
mov ecx, edi
shr rcx, 4
movzx r15d, byte [rcx + r9 + 0x18a290]
add r15d, eax
inc r12d
mov r8d, r12d
imul rdx, r8, 0x2c
add rdx, rbx
mov r11d, dword [rdx + 0x10edc]
cmp r15d, r11d
jae 0x14012e6fd
mov rdi, qword [rsp + 0x58]
lea rax, [r12 + 0x628]
mov dword [rdx + 0x10edc], r15d
mov r11d, r15d
imul rcx, rax, 0x2c
mov eax, dword [rsp + 0xf8]
mov dword [rcx + rbx], eax
mov byte [rdx + 0x10ed0], r10b
mov r10b, 1
mov dword [rdx + 0x10ee4], 0xffffffff
movzx edi, word [rbx + rdi*2 + 0x6b84]
movzx eax, di
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r9 + 0x18a290]
lea rax, [rbx + 0x6d04]
add ecx, r14d
movsxd r14, r13d
mov dword [rsp + 0x40], ecx
lea rax, [rax + r14*2]
mov qword [rsp + 0x60], rax
movzx eax, word [rax]
xor rax, 0x7f0
shr rax, 4
movzx eax, byte [rax + r9 + 0x18a290]
add eax, ecx
mov dword [rsp + 0x44], eax
cmp bpl, sil
jne 0x14012e7d8
mov edi, dword [rsp + 0xf8]
lea rax, [r12 + 0x628]
imul r9, rax, 0x2c
cmp dword [r9 + rbx], edi
jae 0x14012e774
cmp dword [rdx + 0x10ee4], 0
je 0x14012e7d8
movzx eax, word [rbx + r14*2 + 0x6d1c]
lea r8, [0x140000000]
shr rax, 4
movzx ecx, byte [rax + r8 + 0x18a290]
mov rax, qword [rsp + 0x58]
movzx eax, word [rbx + rax*2 + 0x6d64]
shr rax, 4
movzx r8d, byte [rax + r8 + 0x18a290]
mov eax, dword [rsp + 0x44]
add eax, ecx
add r8d, eax
cmp r8d, r11d
ja 0x14012e7d8
mov dword [rdx + 0x10edc], r8d
mov r10b, 1
mov dword [r9 + rbx], edi
mov dword [rdx + 0x10ee4], 0
mov byte [rdx + 0x10ed0], 0
mov ecx, dword [rsp + 0x108]
cmp ecx, 2
jb 0x14012f447
mov edx, dword [rsp + 0x100]
cmp ecx, edx
mov r14d, edx
cmovb r14d, ecx
mov dword [rsp + 0x48], r14d
test r10b, r10b
jne 0x14012e9d3
cmp bpl, sil
je 0x14012e9d3
mov rax, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe0]
mov r9, r8
mov eax, dword [rax]
sub r9, rax
inc edx
cmp ecx, edx
jae 0x14012e831
mov edx, ecx
jmp 0x14012e836
cmp edx, 1
jbe 0x14012e86c
mov ecx, 1
nop dword [rax + rax]
mov eax, ecx
mov r8, qword [rax + r8]
sub r8, qword [rax + r9 - 1]
jne 0x14012e85e
mov r8, qword [rsp + 0xe0]
add ecx, 8
cmp ecx, edx
jb 0x14012e840
jmp 0x14012e86c
bsf rax, r8
shr eax, 3
add ecx, eax
cmp ecx, edx
cmovb edx, ecx
lea r10d, [rdx - 1]
cmp r10d, 2
jb 0x14012e9d3
cmp r13d, 3
jg 0x14012e884
xor eax, eax
jmp 0x14012e892
lea eax, [r13 - 3]
cmp r13d, 9
jle 0x14012e892
lea eax, [r13 - 6]
mov r8d, dword [rsp + 0xf0]
lea r9, [0x140000000]
mov r13d, dword [rsp + 0xf8]
inc r8d
mov ebp, dword [rsp + 0xe8]
movsxd r11, eax
mov eax, dword [rbx + 0xb78]
mov rsi, r11
and r8, rax
shl rsi, 4
add rsi, r8
movzx eax, word [rbx + r11*2 + 0x6d04]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r9 + 0x18a290]
movzx eax, word [rbx + rsi*2 + 0x6b84]
xor rax, 0x7f0
shr rax, 4
movzx edi, byte [rax + r9 + 0x18a290]
lea eax, [r15 + rcx]
add edi, eax
lea r9d, [rdx + r13]
cmp ebp, r9d
jae 0x14012e941
imul rcx, rbp, 0x2c
lea rdx, [rbx + 0x10edc]
mov dword [rsp + 0xe8], r9d
add rdx, rcx
mov ecx, r9d
sub ecx, ebp
nop word [rax + rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14012e930
imul rax, r8, 0x110
lea rdx, [0x140000000]
lea ecx, [r10 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d64]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe34]
movzx eax, byte [rax + rdx + 0x18a290]
add ecx, eax
movzx eax, word [rbx + r11*2 + 0x6d1c]
shr rax, 4
movzx r8d, byte [rax + rdx + 0x18a290]
lea eax, [rdi + rcx]
mov ecx, r9d
add r8d, eax
imul rdx, rcx, 0x2c
add rdx, rbx
cmp r8d, dword [rdx + 0x10edc]
jae 0x14012e9db
lea rax, [r9 + 0x628]
mov dword [rdx + 0x10edc], r8d
imul rcx, rax, 0x2c
mov dword [rdx + 0x10ee4], 0
mov word [rdx + 0x10ed0], 1
mov dword [rcx + rbx], r12d
jmp 0x14012e9db
mov r13d, dword [rsp + 0xf8]
mov r15, qword [rsp + 0xe0]
mov ecx, 2
mov rax, qword [rsp + 0xd8]
xor edi, edi
mov ebp, ecx
mov dword [rsp + 0x34], ecx
mov dword [rsp + 0x38], edi
nop dword [rax]
mov eax, dword [rax]
mov r10, r15
sub r10, rax
movzx eax, word [r10 - 1]
dec r10
mov qword [rsp + 0x78], r10
cmp word [r15], ax
jne 0x14012eeec
cmp r14d, 2
jbe 0x14012ea48
nop word [rax + rax]
mov eax, ecx
mov rdx, qword [rax + r15]
sub rdx, qword [rax + r10]
jne 0x14012ead2
add ecx, 8
cmp ecx, r14d
jb 0x14012ea30
mov edx, r14d
mov r11d, dword [rsp + 0xe8]
lea r9d, [rdx + r13]
cmp r11d, r9d
jae 0x14012ea92
imul r8, r11, 0x2c
mov ecx, r9d
mov dword [rsp + 0xe8], r9d
add r8, 0x10edc
add r8, rbx
sub ecx, r11d
nop dword [rax + rax]
mov dword [r8 + 0x2c], 0x40000000
lea r8, [r8 + 0x2c]
sub rcx, 1
jne 0x14012ea80
mov esi, edx
lea r12, [0x140000000]
mov dword [rsp + 0x54], esi
test edi, edi
jne 0x14012eae9
mov rax, qword [rsp + 0x58]
movzx eax, word [rbx + rax*2 + 0x6d64]
xor rax, 0x7f0
shr rax, 4
movzx r8d, byte [rax + r12 + 0x18a290]
mov rax, qword [rsp + 0x68]
movzx eax, word [rbx + rax*2 + 0x6d1c]
jmp 0x14012eb18
bsf rax, rdx
mov edx, r14d
shr eax, 3
add ecx, eax
cmp ecx, r14d
cmovb edx, ecx
jmp 0x14012ea4b
mov r9, qword [rsp + 0x68]
movzx eax, word [rbx + r9*2 + 0x6d1c]
xor rax, 0x7f0
shr rax, 4
movzx r8d, byte [rax + r12 + 0x18a290]
cmp edi, 1
jne 0x14012eb2a
movzx eax, word [rbx + r9*2 + 0x6d34]
shr rax, 4
movzx eax, byte [rax + r12 + 0x18a290]
add r8d, eax
jmp 0x14012eb73
movzx ecx, word [rbx + r9*2 + 0x6d4c]
mov eax, 2
sub eax, edi
shr rcx, 4
shr rax, 4
and eax, 0x7f
xor rcx, rax
movzx eax, word [rbx + r9*2 + 0x6d34]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rcx + r12 + 0x18a290]
movzx eax, byte [rax + r12 + 0x18a290]
add r8d, eax
add r8d, ecx
mov r10d, dword [rsp + 0x44]
add r10d, r8d
imul r11, qword [rsp + 0x70], 0x110
mov dword [rsp + 0x50], r10d
nop dword [rax]
lea eax, [rdx + r13]
mov r9d, eax
lea ecx, [rdx - 2]
add rcx, r11
imul r8, r9, 0x2c
mov ecx, dword [rbx + rcx*4 + 0xbe34]
add r8, rbx
add ecx, r10d
cmp ecx, dword [r8 + 0x10edc]
jae 0x14012ebdb
add rax, 0x628
mov dword [r8 + 0x10edc], ecx
imul rcx, rax, 0x2c
mov dword [r8 + 0x10ee4], edi
mov byte [r8 + 0x10ed0], 0
mov dword [rcx + rbx], r13d
dec edx
cmp edx, 2
jae 0x14012eb90
mov r8d, dword [rsp + 0x100]
lea r9d, [rsi + 1]
mov r10, qword [rsp + 0x78]
test edi, edi
cmove ebp, r9d
add r8d, r9d
cmp dword [rsp + 0x108], r8d
mov dword [rsp + 0x34], ebp
cmovb r8d, dword [rsp + 0x108]
cmp r9d, r8d
jae 0x14012ec4c
mov ecx, r9d
nop dword [rax]
mov eax, ecx
mov rdx, qword [rax + r15]
sub rdx, qword [rax + r10]
jne 0x14012ec39
add ecx, 8
cmp ecx, r8d
jb 0x14012ec20
mov r9d, r8d
jmp 0x14012ec4c
bsf rax, rdx
mov r9d, r8d
shr eax, 3
add ecx, eax
cmp ecx, r8d
cmovb r9d, ecx
mov eax, 0xffffffff
mov r12d, r9d
sub eax, esi
add r9d, eax
cmp r9d, 2
jb 0x14012eee7
mov r13d, dword [rsp + 0xf0]
lea eax, [rsi - 1]
add r13d, esi
lea ecx, [rsi - 2]
add rcx, r11
mov r8, rsi
movzx r11d, byte [r10 + rsi]
mov r14d, r13d
mov r10, qword [rsp + 0xe0]
xor esi, esi
and r14d, dword [rbx + 0xb78]
mov edi, 0x100
mov r15d, dword [rbx + rcx*4 + 0xbe34]
mov ecx, 8
sub cl, byte [rbx + 0xb7c]
movzx edx, byte [rax + r10]
mov eax, dword [rbx + 0xb80]
movzx r10d, byte [r8 + r10]
and eax, r13d
shr edx, cl
mov ecx, dword [rbx + 0xb7c]
shl eax, cl
add edx, eax
lea rbp, [rdx + rdx*2]
shl rbp, 9
add rbp, rbx
lea rbx, [0x140000000]
add r10d, edi
nop
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 + 0xb84]
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 + 0x18a290]
add esi, eax
mov eax, r11d
xor eax, r10d
not eax
and edi, eax
cmp r10d, 0x10000
jb 0x14012ece0
cmp dword [rsp + 0x30], 7
mov eax, 0x3642
mov rbx, qword [rsp + 0xd0]
mov ecx, 0x3672
cmovl ecx, eax
mov eax, r14d
add rcx, rax
lea r14, [0x140000000]
movzx eax, word [rbx + rcx*2]
shr rax, 4
movzx edx, byte [rax + r14 + 0x18a290]
add edx, esi
add edx, r15d
add edx, dword [rsp + 0x50]
cmp dword [rsp + 0x30], 7
jge 0x14012ed85
mov eax, 8
lea ecx, [rax - 3]
jmp 0x14012ed8f
mov eax, 5
mov ecx, 2
mov ebp, dword [rsp + 0xe8]
lea r10d, [r13 + 1]
mov r13d, dword [rsp + 0xf8]
cmovl eax, ecx
mov r11d, eax
mov eax, dword [rbx + 0xb78]
mov esi, r11d
and r10, rax
shl rsi, 4
add rsi, r10
lea r8d, [r12 + r13]
movzx eax, word [rbx + rsi*2 + 0x6b84]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r14 + 0x18a290]
movzx eax, word [rbx + r11*2 + 0x6d04]
xor rax, 0x7f0
shr rax, 4
movzx edi, byte [rax + r14 + 0x18a290]
lea eax, [rdx + rcx]
add edi, eax
cmp ebp, r8d
jae 0x14012ee31
imul rcx, rbp, 0x2c
lea rdx, [rbx + 0x10edc]
mov dword [rsp + 0xe8], r8d
add rdx, rcx
mov ecx, r8d
sub ecx, ebp
nop dword [rax + rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14012ee20
mov r15, qword [rsp + 0xe0]
lea ecx, [r9 - 2]
mov ebp, dword [rsp + 0x34]
imul rax, r10, 0x110
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d64]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe34]
movzx eax, byte [rax + r14 + 0x18a290]
add ecx, eax
movzx eax, word [rbx + r11*2 + 0x6d1c]
shr rax, 4
movzx edx, byte [rax + r14 + 0x18a290]
lea eax, [rdi + rcx]
mov edi, dword [rsp + 0x38]
add edx, eax
mov r14d, dword [rsp + 0x48]
mov ecx, r8d
imul r8, rcx, 0x2c
add r8, rbx
cmp edx, dword [r8 + 0x10edc]
jae 0x14012eee7
mov dword [r8 + 0x10edc], edx
lea rax, [rcx + 0x628]
mov edx, dword [rsp + 0x54]
inc edx
mov dword [r8 + 0x10ee4], 0
add edx, r13d
mov word [r8 + 0x10ed0], 0x101
imul rcx, rax, 0x2c
mov dword [r8 + 0x10ed4], r13d
mov dword [r8 + 0x10ed8], edi
mov dword [rcx + rbx], edx
mov ecx, 2
mov rax, qword [rsp + 0xd8]
inc edi
add rax, 4
mov dword [rsp + 0x38], edi
mov qword [rsp + 0xd8], rax
cmp edi, 4
jb 0x14012ea00
mov ecx, dword [rsp + 0x3c]
cmp ecx, r14d
jbe 0x14012ef4a
xor edx, edx
mov ecx, r14d
cmp r14d, dword [rbx + 0x2dc]
jbe 0x14012ef3c
nop word [rax + rax]
inc edx
cmp r14d, dword [rbx + rdx*8 + 0x2dc]
ja 0x14012ef30
mov dword [rbx + rdx*8 + 0x2dc], r14d
inc edx
mov dword [rsp + 0x4c], edx
cmp ecx, ebp
jb 0x14012f447
mov rax, qword [rsp + 0x60]
lea rdx, [0x140000000]
mov r9d, dword [rsp + 0xf8]
mov r10d, dword [rsp + 0xe8]
movzx eax, word [rax]
shr rax, 4
lea r8d, [rcx + r9]
movzx r13d, byte [rax + rdx + 0x18a290]
add r13d, dword [rsp + 0x40]
mov dword [rsp + 0xd8], r13d
cmp r10d, r8d
jae 0x14012efc1
imul rdx, r10, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10edc
add rdx, rbx
sub ecx, r10d
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14012efb0
xor r12d, r12d
cmp ebp, dword [rbx + 0x2dc]
jbe 0x14012efdd
nop dword [rax]
inc r12d
cmp ebp, dword [rbx + r12*8 + 0x2dc]
ja 0x14012efd0
imul rbp, qword [rsp + 0x70], 0x110
mov r14d, dword [rsp + 0x34]
mov eax, r9d
inc r14d
mov qword [rsp + 0x60], rbp
sub eax, dword [rsp + 0x100]
mov dword [rsp + 0x40], eax
nop dword [rax]
nop word [rax + rax]
mov edi, dword [rbx + r12*8 + 0x2e0]
lea esi, [r14 - 1]
mov dword [rsp + 0x3c], edi
lea r9d, [rsi - 2]
cmp esi, 6
jb 0x14012f02f
mov r9d, 3
lea eax, [r14 - 3]
mov rdx, rdi
lea r10d, [rsi - 2]
cmovae r10d, eax
cmp edi, 0x80
jae 0x14012f059
mov eax, r9d
shl rax, 7
add rax, rdx
mov ecx, dword [rbx + rax*4 + 0x10678]
jmp 0x14012f0cd
lea rcx, [0x140000000]
mov rax, rdx
cmp edi, 0x80000
jae 0x14012f081
shr rax, 6
movzx eax, byte [rax + rcx + 0x18a310]
lea r8, [rax*4 + 0x102a8]
jmp 0x14012f0b3
cmp edi, 0x80000000
jae 0x14012f09f
shr rax, 0x12
movzx eax, byte [rax + rcx + 0x18a310]
lea r8, [rax*4 + 0x10308]
jmp 0x14012f0b3
shr rax, 0x1e
movzx eax, byte [rax + rcx + 0x18a310]
lea r8, [rax*4 + 0x10368]
mov rcx, rdx
mov eax, r9d
and ecx, 0xf
shl rax, 8
add rax, r8
mov ecx, dword [rbx + rcx*4 + 0x10e80]
add ecx, dword [rax + rbx]
mov r9d, dword [rsp + 0xf8]
mov eax, r10d
add rax, rbp
mov ebp, dword [rbx + rax*4 + 0x75ec]
lea eax, [r9 - 1]
add ebp, ecx
add eax, r14d
mov ecx, eax
add ebp, r13d
imul r8, rcx, 0x2c
add r8, rbx
cmp ebp, dword [r8 + 0x10edc]
jae 0x14012f127
add rax, 0x628
mov dword [r8 + 0x10edc], ebp
imul rcx, rax, 0x2c
lea eax, [rdi + 4]
mov byte [r8 + 0x10ed0], 0
mov dword [r8 + 0x10ee4], eax
mov dword [rcx + rbx], r9d
cmp esi, dword [rbx + r12*8 + 0x2dc]
jne 0x14012f43a
mov eax, dword [rsp + 0x100]
mov r10, r15
add eax, r14d
sub r10, rdx
cmp dword [rsp + 0x108], eax
mov r8d, eax
mov edi, r14d
cmovb r8d, dword [rsp + 0x108]
cmp r14d, r8d
jae 0x14012f18f
mov ecx, r14d
mov eax, ecx
mov rdx, qword [rax + r15]
sub rdx, qword [rax + r10 - 1]
jne 0x14012f17d
add ecx, 8
cmp ecx, r8d
jb 0x14012f163
mov edi, r8d
jmp 0x14012f18f
bsf rax, rdx
mov edi, r8d
shr eax, 3
add ecx, eax
cmp ecx, r8d
cmovb edi, ecx
mov eax, 0xffffffff
mov dword [rsp + 0xd0], edi
sub eax, esi
add edi, eax
cmp edi, 2
jb 0x14012f430
movzx r11d, byte [rsi + r10 - 1]
lea eax, [rsi - 1]
movzx edx, byte [rax + r15]
mov ecx, 8
sub cl, byte [rbx + 0xb7c]
mov r10d, 0x100
mov eax, dword [rbx + 0xb80]
mov r8d, dword [rsp + 0xf0]
shr edx, cl
dec r8d
mov ecx, dword [rbx + 0xb7c]
add r8d, r14d
and eax, r8d
mov r9d, esi
shl eax, cl
mov r13d, r8d
and r13d, dword [rbx + 0xb78]
add edx, eax
mov rax, qword [rsp + 0xe0]
xor esi, esi
lea r15, [rdx + rdx*2]
movzx r8d, byte [r9 + rax]
lea r9, [0x140000000]
shl r15, 9
add r15, rbx
add r8d, r10d
nop dword [rax + rax]
mov ecx, r8d
add r11d, r11d
shr ecx, 8
mov eax, r10d
and eax, r11d
add eax, r10d
add ecx, eax
movzx edx, word [r15 + rcx*2 + 0xb84]
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 + 0x18a290]
add esi, eax
mov eax, r11d
xor eax, r8d
not eax
and r10d, eax
cmp r8d, 0x10000
jb 0x14012f220
cmp dword [rsp + 0x30], 7
mov eax, 0x3632
mov ecx, 0x3662
cmovl ecx, eax
mov eax, r13d
add rcx, rax
movzx eax, word [rbx + rcx*2]
shr rax, 4
movzx edx, byte [rax + r9 + 0x18a290]
add edx, esi
add edx, ebp
cmp dword [rsp + 0x30], 7
jge 0x14012f2b6
mov eax, 7
lea ecx, [rax - 3]
jmp 0x14012f2c0
mov eax, 4
mov ecx, 1
mov r8d, dword [rsp + 0xd0]
lea r9d, [r13 + 1]
mov ebp, dword [rsp + 0xf8]
lea r13, [0x140000000]
mov r15d, dword [rsp + 0xe8]
cmovl eax, ecx
mov r10d, eax
add r8d, ebp
mov eax, dword [rbx + 0xb78]
mov esi, r10d
and r9, rax
shl rsi, 4
add rsi, r9
movzx eax, word [rbx + rsi*2 + 0x6b84]
xor rax, 0x7f0
shr rax, 4
movzx ecx, byte [rax + r13 + 0x18a290]
movzx eax, word [rbx + r10*2 + 0x6d04]
xor rax, 0x7f0
shr rax, 4
movzx r11d, byte [rax + r13 + 0x18a290]
lea eax, [rdx + rcx]
add r11d, eax
cmp r15d, r8d
jae 0x14012f371
imul rdx, r15, 0x2c
mov ecx, r8d
mov dword [rsp + 0xe8], r8d
add rdx, 0x10edc
add rdx, rbx
sub ecx, r15d
nop dword [rax]
mov dword [rdx + 0x2c], 0x40000000
lea rdx, [rdx + 0x2c]
sub rcx, 1
jne 0x14012f360
mov r15, qword [rsp + 0xe0]
lea ecx, [rdi - 2]
imul rax, r9, 0x110
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x6d64]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rcx*4 + 0xbe34]
movzx eax, byte [rax + r13 + 0x18a290]
add ecx, eax
movzx eax, word [rbx + r10*2 + 0x6d1c]
shr rax, 4
movzx edx, byte [rax + r13 + 0x18a290]
lea eax, [r11 + rcx]
mov r13d, dword [rsp + 0xd8]
add edx, eax
mov ecx, r8d
imul r8, rcx, 0x2c
add r8, rbx
cmp edx, dword [r8 + 0x10edc]
jae 0x14012f430
mov eax, dword [rsp + 0x100]
add eax, r14d
mov dword [r8 + 0x10edc], edx
mov edx, dword [rsp + 0x40]
add edx, eax
mov dword [r8 + 0x10ee4], 0
lea rax, [rcx + 0x628]
mov word [r8 + 0x10ed0], 0x101
imul rcx, rax, 0x2c
mov eax, dword [rsp + 0x3c]
add eax, 4
mov dword [r8 + 0x10ed4], ebp
mov dword [r8 + 0x10ed8], eax
mov dword [rcx + rbx], edx
inc r12d
cmp r12d, dword [rsp + 0x4c]
je 0x14012f447
mov rbp, qword [rsp + 0x60]
inc r14d
jmp 0x14012f010
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