Function at 0x140044f00
Capabilities:
Encode data using xor
Encrypt data using aes via x86 extensions
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x14010bcf8]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov ebx, r8d
mov rdi, rdx
mov qword [rsp + 0x38], r9
mov r13, rcx
mov qword [rsp + 0x40], rcx
lea eax, [rbx - 0x10]
test eax, 0xffffffe7
jne 0x14004636b
cmp ebx, 0x28
je 0x14004636b
mov esi, ebx
mov dword [rcx + 0xf4], ebx
shr esi, 2
mov r15d, 1
cmp dword [0x14039893c], 0
mov byte [rcx + 0x140], 0
lea eax, [rsi + 6]
mov dword [rcx + 0xf0], eax
jne 0x140044fa9
call fcn.140042a20
mov r9, qword [rsp + 0x38]
mov dword [0x140398944], eax
shr eax, 5
and eax, r15d
mov dword [0x14039893c], r15d
mov dword [0x140398940], eax
jmp 0x140044faf
mov eax, dword [0x140398940]
test eax, eax
je 0x140045218
mov byte [r13 + 0x140], r15b
test r9, r9
je 0x140044fd1
movups xmm0, xmmword [r9]
movups xmmword [r13 + 0x100], xmm0
jmp 0x140044fdc
xorps xmm0, xmm0
movups xmmword [r13 + 0x100], xmm0
cmp dword [rbp + 0x110], 0
jne 0x14004507b
test rdi, rdi
je 0x14004506d
lea ebx, [rbx*8]
sub ebx, 0x80
je 0x14004504b
sub ebx, 0x40
je 0x140045029
cmp ebx, 0x40
jne 0x14004506d
mov rdx, r13
mov rcx, rdi
call fcn.1400a92a8
mov ecx, reloc.WS2_32.dll_ntohl
xor r10d, r10d
mov dword [r13 + 0xf0], ecx
mov eax, r10d
jmp 0x140046370
mov rdx, r13
mov rcx, rdi
call fcn.1400a9144
mov ecx, listen
xor r10d, r10d
mov dword [r13 + 0xf0], ecx
mov eax, r10d
jmp 0x140046370
mov rdx, r13
mov rcx, rdi
call fcn.1400a904d
mov ecx, 0xa
xor r10d, r10d
mov dword [r13 + 0xf0], ecx
mov eax, r10d
jmp 0x140046370
mov r10d, 0xffffff53
mov eax, r10d
jmp 0x140046370
test rdi, rdi
je 0x14004506d
lea ebx, [rbx*8]
sub ebx, 0x80
je 0x1400450bf
sub ebx, 0x40
je 0x1400450ab
cmp ebx, 0x40
jne 0x14004506d
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1400a92a8
lea ecx, [rbx - 0x32]
jmp 0x1400450d1
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1400a9144
mov ecx, listen
jmp 0x1400450d1
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.1400a904d
mov ecx, 0xa
aesimc xmm1, xmmword [rsp + 0x60]
movdqa xmm0, xmmword [rsp + 0x50]
movsxd rdx, ecx
mov dword [r13 + 0xf0], ecx
mov rax, rdx
add rax, rax
mov dword [rbp + 0x40], ecx
mov r8, rdx
add r8, r8
movdqu xmmword [r13 + rax*8 - 0x10], xmm1
lea rax, [rdx - 2]
aesimc xmm1, xmmword [rbp - 0x80]
add rax, rax
movdqu xmmword [r13 + r8*8], xmm0
aesimc xmm0, xmmword [rsp + 0x70]
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 3]
aesimc xmm0, xmmword [rbp - 0x70]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
lea rax, [rdx - 4]
aesimc xmm1, xmmword [rbp - 0x60]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 5]
aesimc xmm0, xmmword [rbp - 0x50]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
lea rax, [rdx - 6]
aesimc xmm1, xmmword [rbp - 0x40]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 7]
aesimc xmm0, xmmword [rbp - 0x30]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
lea rax, [rdx - 8]
aesimc xmm1, xmmword [rbp - 0x20]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 9]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
cmp ecx, 0xa
jle 0x1400451d3
aesimc xmm0, xmmword [rbp - 0x10]
aesimc xmm1, xmmword [rbp]
lea rax, [rdx - 0xa]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 0xb]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
cmp ecx, 0xc
jle 0x140045200
aesimc xmm0, xmmword [rbp + 0x10]
aesimc xmm1, xmmword [rbp + 0x20]
lea rax, [rdx - 0xc]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm0
lea rax, [rdx - 0xd]
add rax, rax
movdqu xmmword [r13 + rax*8], xmm1
movdqu xmm0, xmmword [rsp + r8*8 + 0x50]
xor r10d, r10d
movdqu xmmword [r13], xmm0
mov eax, r10d
jmp 0x140046370
mov r8, rbx
mov rdx, rdi
mov rcx, r13
call fcn.1400b14c0
test esi, esi
je 0x140045253
mov rdx, r13
mov r8d, esi
mov eax, dword [rdx]
lea rdx, [rdx + 4]
mov ecx, eax
rol eax, 8
ror ecx, 8
and eax, 0xff00ff
and ecx, 0xff00ff00
or ecx, eax
mov dword [rdx - 4], ecx
sub r8, r15
jne 0x140045230
mov r14d, 2
cmp ebx, 0x10
je 0x140045ad8
cmp ebx, 0x18
je 0x140045628
cmp ebx, 0x20
jne 0x14004636b
mov r8d, dword [r13 + 0x1c]
lea rdi, [0x1400ed79c]
mov esi, dword [r13 + 0x14]
mov eax, r8d
shr eax, 0x10
movzx ecx, al
lea rax, [0x140000000]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], r14
mov r9d, dword [rax + rcx*4 + 0xeeff0]
mov ecx, r8d
shr rcx, 0x18
btc r9d, 0x18
and r9d, 0xff000000
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor r9d, ecx
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r9d, ecx
movzx ecx, r8b
mov edx, dword [rax + rcx*4 + 0xee7f0]
lea rcx, [r13 + 0x14]
and edx, 0xff00
xor r9d, edx
xor r9d, dword [r13]
mov dword [r13 + 0x20], r9d
xor r9d, dword [r13 + 4]
mov dword [r13 + 0x24], r9d
xor r9d, dword [r13 + 8]
mov dword [r13 + 0x28], r9d
xor r9d, dword [r13 + 0xc]
mov dword [r13 + 0x2c], r9d
mov r13, rcx
nop word [rax + rax]
mov r8d, dword [r13 + 0x18]
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov ebx, dword [rax + rdx*4 + 0xef3f0]
mov ecx, dword [rax + rcx*4 + 0xeeff0]
and ebx, 0xff0000
and ecx, 0xff000000
xor ebx, ecx
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xee7f0]
and ecx, 0xff00
xor ebx, ecx
movzx ecx, r8b
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor ebx, ecx
xor ebx, dword [r13 - 4]
mov dword [r13 + 0x1c], ebx
mov r9d, ebx
xor r9d, esi
mov dword [r13 + 0x20], r9d
mov r10d, r9d
xor r10d, dword [r13 + 4]
mov dword [r13 + 0x24], r10d
mov r11d, r10d
xor r11d, dword [r13 + 8]
mov dword [r13 + 0x28], r11d
mov ecx, r11d
shr rcx, 0x18
movzx esi, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r11d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor esi, ecx
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xeeff0]
and ecx, 0xff000000
xor esi, ecx
movzx ecx, r11b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor esi, edx
xor esi, dword [r13 + 0xc]
xor esi, dword [rdi - 8]
mov dword [r13 + 0x2c], esi
mov r14d, esi
xor r14d, dword [r13 + 0x10]
mov dword [r13 + 0x30], r14d
mov r15d, r14d
xor r15d, dword [r13 + 0x14]
mov r12d, r15d
mov dword [r13 + 0x34], r15d
xor r12d, r8d
mov ecx, r12d
mov dword [r13 + 0x38], r12d
shr ecx, 0x10
movzx edx, cl
mov ecx, r12d
shr rcx, 0x18
mov edi, dword [rax + rdx*4 + 0xef3f0]
and edi, 0xff0000
mov ecx, dword [rax + rcx*4 + 0xeeff0]
and ecx, 0xff000000
xor edi, ecx
mov ecx, r12d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xee7f0]
and ecx, 0xff00
xor edi, ecx
movzx ecx, r12b
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor edi, ecx
xor edi, ebx
mov r8d, edi
mov dword [r13 + 0x3c], edi
xor r8d, r9d
mov r9d, r8d
mov dword [r13 + 0x40], r8d
xor r9d, r10d
mov ebx, r9d
mov dword [r13 + 0x44], r9d
xor ebx, r11d
mov dword [r13 + 0x48], ebx
mov ecx, ebx
shr rcx, 0x18
movzx r11d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, ebx
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r11d, ecx
mov ecx, ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xeeff0]
and ecx, 0xff000000
xor r11d, ecx
movzx ecx, bl
mov edx, dword [rax + rcx*4 + 0xee7f0]
mov rcx, qword [rsp + 0x28]
and edx, 0xff00
xor r11d, edx
xor r11d, dword [rcx - 4]
xor r11d, esi
mov dword [r13 + 0x4c], r11d
xor r14d, r11d
mov dword [r13 + 0x50], r14d
xor r15d, r14d
xor r12d, r15d
mov dword [r13 + 0x54], r15d
mov dword [r13 + 0x58], r12d
mov ecx, r12d
shr ecx, 0x10
movzx edx, cl
mov ecx, r12d
shr rcx, 0x18
mov esi, dword [rax + rdx*4 + 0xef3f0]
and esi, 0xff0000
mov ecx, dword [rax + rcx*4 + 0xeeff0]
and ecx, 0xff000000
xor esi, ecx
mov ecx, r12d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xee7f0]
and ecx, 0xff00
xor esi, ecx
movzx ecx, r12b
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor esi, ecx
xor esi, edi
mov dword [r13 + 0x5c], esi
xor esi, r8d
mov r8d, esi
mov dword [r13 + 0x60], esi
xor r8d, r9d
mov dword [r13 + 0x64], r8d
xor r8d, ebx
mov ecx, r8d
shr rcx, 0x18
mov dword [r13 + 0x68], r8d
mov dword [rsp + 0x20], r8d
movzx r9d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r9d, ecx
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xeeff0]
lea r13, [r13 + 0x60]
mov rdi, qword [rsp + 0x28]
and ecx, 0xff000000
xor r9d, ecx
movzx ecx, r8b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r9d, edx
xor r9d, dword [rdi]
add rdi, 0xc
xor r9d, r11d
mov qword [rsp + 0x28], rdi
mov dword [r13 + 0xc], r9d
xor r9d, r14d
mov dword [r13 + 0x10], r9d
xor r9d, r15d
mov dword [r13 + 0x14], r9d
xor r9d, r12d
sub qword [rsp + 0x30], 1
mov dword [r13 + 0x18], r9d
jne 0x140045320
mov r13, qword [rsp + 0x40]
mov r14d, 2
lea r12, [r13 + 8]
lea r15d, [r14 - 1]
jmp 0x140045fe1
mov esi, dword [r13 + 0x14]
lea r12, [r13 + 8]
mov eax, esi
shr eax, 0x10
movzx ecx, al
lea rax, [0x140000000]
mov r9d, dword [rax + rcx*4 + 0xeeff0]
mov ecx, esi
shr rcx, 0x18
btc r9d, 0x18
and r9d, 0xff000000
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor r9d, ecx
mov ecx, esi
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r9d, ecx
movzx ecx, sil
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r9d, edx
xor r9d, dword [r13]
mov dword [r13 + 0x18], r9d
mov r15d, r9d
xor r15d, dword [r13 + 4]
mov dword [r13 + 0x1c], r15d
mov r10d, r15d
xor r10d, dword [r12]
mov dword [r13 + 0x20], r10d
mov r11d, r10d
xor r11d, dword [r13 + 0xc]
mov dword [r13 + 0x24], r11d
mov edi, r11d
xor edi, dword [r13 + 0x10]
xor esi, edi
mov dword [r13 + 0x28], edi
mov dword [r13 + 0x2c], esi
mov ecx, esi
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr rcx, 0x18
mov r8d, dword [rax + rdx*4 + 0xeeff0]
btc r8d, 0x19
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r8d, 0xff000000
xor r8d, ecx
mov ecx, esi
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r8d, ecx
movzx ecx, sil
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r8d, edx
xor r8d, r9d
mov dword [r13 + 0x30], r8d
xor r15d, r8d
mov dword [r13 + 0x34], r15d
xor r10d, r15d
xor r11d, r10d
mov dword [r13 + 0x38], r10d
xor edi, r11d
mov dword [r13 + 0x3c], r11d
xor esi, edi
mov dword [r13 + 0x40], edi
mov ecx, esi
mov dword [r13 + 0x44], esi
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr rcx, 0x18
mov ebx, dword [rax + rdx*4 + 0xeeff0]
btc ebx, 0x1a
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and ebx, 0xff000000
xor ebx, ecx
mov ecx, esi
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor ebx, ecx
movzx ecx, sil
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor ebx, edx
xor ebx, r8d
mov dword [r13 + 0x48], ebx
xor r15d, ebx
mov dword [r13 + 0x4c], r15d
mov r8d, r15d
xor r8d, r10d
mov dword [r13 + 0x50], r8d
mov r9d, r8d
xor r9d, r11d
mov dword [r13 + 0x54], r9d
mov r10d, r9d
xor r10d, edi
mov dword [r13 + 0x58], r10d
mov r11d, r10d
xor r11d, esi
mov ecx, r11d
mov dword [r13 + 0x5c], r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr rcx, 0x18
mov edi, dword [rax + rdx*4 + 0xeeff0]
btc edi, 0x1b
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and edi, 0xff000000
xor edi, ecx
mov ecx, r11d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor edi, ecx
movzx ecx, r11b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor edi, edx
xor edi, ebx
mov dword [r13 + 0x60], edi
xor r15d, edi
mov dword [r13 + 0x64], r15d
mov ebx, r15d
xor ebx, r8d
mov dword [r13 + 0x68], ebx
mov r8d, ebx
xor r8d, r9d
mov r9d, r8d
mov dword [r13 + 0x6c], r8d
xor r9d, r10d
mov r10d, r9d
mov dword [r13 + 0x70], r9d
xor r10d, r11d
mov ecx, r10d
mov dword [r13 + 0x74], r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov esi, dword [rax + rdx*4 + 0xeeff0]
btc esi, 0x1c
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and esi, 0xff000000
xor esi, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor esi, ecx
movzx ecx, r10b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor esi, edx
xor esi, edi
xor r15d, esi
mov dword [r13 + 0x78], esi
mov dword [r13 + 0x7c], r15d
mov r11d, r15d
xor r11d, ebx
mov dword [r13 + 0x80], r11d
mov ebx, r11d
xor ebx, r8d
mov dword [r13 + 0x84], ebx
mov r8d, ebx
xor r8d, r9d
mov dword [r13 + 0x88], r8d
mov r9d, r8d
xor r9d, r10d
mov dword [r13 + 0x8c], r9d
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr rcx, 0x18
mov r14d, dword [rax + rdx*4 + 0xeeff0]
btc r14d, 0x1d
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r14d, 0xff000000
xor r14d, ecx
mov ecx, r9d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r14d, ecx
movzx ecx, r9b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r14d, edx
xor r14d, esi
mov dword [r13 + 0x90], r14d
mov r10d, r14d
xor r10d, r15d
mov dword [r13 + 0x94], r10d
mov edi, r10d
xor edi, r11d
mov dword [r13 + 0x98], edi
mov r11d, edi
xor r11d, ebx
mov dword [r13 + 0x9c], r11d
mov ebx, r11d
xor ebx, r8d
mov esi, ebx
mov dword [r13 + 0xa0], ebx
xor esi, r9d
mov ecx, esi
mov dword [r13 + 0xa4], esi
shr ecx, 0x10
movzx edx, cl
mov ecx, esi
shr rcx, 0x18
mov r15d, dword [rax + rdx*4 + 0xeeff0]
btc r15d, 0x1e
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r15d, 0xff000000
xor r15d, ecx
mov ecx, esi
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r15d, ecx
movzx ecx, sil
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r15d, edx
xor r15d, r14d
mov r14d, r15d
mov dword [r13 + 0xa8], r15d
xor r14d, r10d
mov r10d, r14d
mov dword [r13 + 0xac], r14d
xor r10d, edi
mov dword [r13 + 0xb0], r10d
mov edi, r10d
xor edi, r11d
mov dword [r13 + 0xb4], edi
mov r8d, edi
xor r8d, ebx
mov dword [r13 + 0xb8], r8d
xor r8d, esi
mov dword [r13 + 0xbc], r8d
mov ecx, r8d
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov dword [rsp + 0x20], r8d
mov r9d, dword [rax + rdx*4 + 0xeeff0]
xor r9d, 0x80ffffff
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r9d, 0xff000000
xor r9d, ecx
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r9d, ecx
movzx ecx, r8b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r9d, edx
xor r9d, r15d
mov dword [r13 + 0xc0], r9d
xor r9d, r14d
mov dword [r13 + 0xc4], r9d
mov r14d, 2
xor r9d, r10d
mov dword [r13 + 0xc8], r9d
xor r9d, edi
mov dword [r13 + 0xcc], r9d
lea r15d, [r14 - 1]
jmp 0x140045fe1
mov r10d, dword [r13 + 0xc]
lea r12, [r13 + 8]
mov eax, r10d
shr eax, 0x10
movzx ecx, al
lea rax, [0x140000000]
mov edi, dword [rax + rcx*4 + 0xeeff0]
mov ecx, r10d
shr rcx, 0x18
btc edi, 0x18
and edi, 0xff000000
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor edi, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor edi, ecx
movzx ecx, r10b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor edi, edx
xor edi, dword [r13]
mov dword [r13 + 0x10], edi
mov r11d, edi
xor r11d, dword [r13 + 4]
mov dword [r13 + 0x14], r11d
mov r8d, r11d
xor r8d, dword [r12]
mov dword [r13 + 0x18], r8d
mov r9d, r8d
xor r9d, r10d
mov ecx, r9d
mov dword [r13 + 0x1c], r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr rcx, 0x18
mov ebx, dword [rax + rdx*4 + 0xeeff0]
btc ebx, 0x19
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and ebx, 0xff000000
xor ebx, ecx
mov ecx, r9d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor ebx, ecx
movzx ecx, r9b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor ebx, edx
xor ebx, edi
mov dword [r13 + 0x20], ebx
mov r10d, ebx
xor r10d, r11d
mov r11d, r10d
mov dword [r13 + 0x24], r10d
xor r11d, r8d
mov r8d, r11d
mov dword [r13 + 0x28], r11d
xor r8d, r9d
mov ecx, r8d
mov dword [r13 + 0x2c], r8d
shr ecx, 0x10
movzx edx, cl
mov ecx, r8d
shr rcx, 0x18
mov edi, dword [rax + rdx*4 + 0xeeff0]
btc edi, 0x1a
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and edi, 0xff000000
xor edi, ecx
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor edi, ecx
movzx ecx, r8b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor edi, edx
xor edi, ebx
mov dword [r13 + 0x30], edi
mov esi, edi
xor esi, r10d
mov dword [r13 + 0x34], esi
mov r9d, esi
xor r9d, r11d
mov dword [r13 + 0x38], r9d
mov r10d, r9d
xor r10d, r8d
mov dword [r13 + 0x3c], r10d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov r11d, dword [rax + rdx*4 + 0xeeff0]
btc r11d, 0x1b
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r11d, 0xff000000
xor r11d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r11d, ecx
movzx ecx, r10b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r11d, edx
xor r11d, edi
mov dword [r13 + 0x40], r11d
xor esi, r11d
mov dword [r13 + 0x44], esi
mov r8d, esi
xor r8d, r9d
mov dword [r13 + 0x48], r8d
mov r9d, r8d
xor r9d, r10d
mov dword [r13 + 0x4c], r9d
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr rcx, 0x18
mov ebx, dword [rax + rdx*4 + 0xeeff0]
btc ebx, 0x1c
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and ebx, 0xff000000
xor ebx, ecx
mov ecx, r9d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor ebx, ecx
movzx ecx, r9b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor ebx, edx
xor ebx, r11d
xor esi, ebx
mov dword [r13 + 0x50], ebx
mov dword [r13 + 0x54], esi
mov r10d, esi
xor r10d, r8d
mov r8d, r10d
mov dword [r13 + 0x58], r10d
xor r8d, r9d
mov ecx, r8d
mov dword [r13 + 0x5c], r8d
shr ecx, 0x10
movzx edx, cl
mov r11d, dword [rax + rdx*4 + 0xeeff0]
btc r11d, 0x1d
and r11d, 0xff000000
mov ecx, r8d
shr rcx, 0x18
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
xor r11d, ecx
mov ecx, r8d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r11d, ecx
movzx ecx, r8b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r11d, edx
xor r11d, ebx
mov dword [r13 + 0x60], r11d
xor esi, r11d
mov dword [r13 + 0x64], esi
mov r9d, esi
xor r9d, r10d
mov dword [r13 + 0x68], r9d
mov r10d, r9d
xor r10d, r8d
mov dword [r13 + 0x6c], r10d
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov ecx, r10d
shr rcx, 0x18
mov r8d, dword [rax + rdx*4 + 0xeeff0]
btc r8d, 0x1e
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r8d, 0xff000000
xor r8d, ecx
mov ecx, r10d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r8d, ecx
movzx ecx, r10b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r8d, edx
xor r8d, r11d
mov dword [r13 + 0x70], r8d
xor esi, r8d
mov dword [r13 + 0x74], esi
mov r11d, esi
xor r11d, r9d
mov dword [r13 + 0x78], r11d
mov ebx, r11d
xor ebx, r10d
mov ecx, ebx
mov dword [r13 + 0x7c], ebx
shr ecx, 0x10
movzx edx, cl
mov ecx, ebx
shr rcx, 0x18
mov r10d, dword [rax + rdx*4 + 0xeeff0]
xor r10d, 0x80ffffff
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r10d, 0xff000000
xor r10d, ecx
mov ecx, ebx
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r10d, ecx
movzx ecx, bl
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r10d, edx
xor r10d, r8d
xor esi, r10d
mov dword [r13 + 0x80], r10d
mov r8d, esi
mov dword [r13 + 0x84], esi
xor r8d, r11d
mov dword [r13 + 0x88], r8d
mov r9d, r8d
xor r9d, ebx
mov dword [r13 + 0x8c], r9d
mov ecx, r9d
shr ecx, 0x10
movzx edx, cl
mov ecx, r9d
shr rcx, 0x18
mov ebx, dword [rax + rdx*4 + 0xeeff0]
xor ebx, 0x1b000000
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and ebx, 0xff000000
xor ebx, ecx
mov ecx, r9d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor ebx, ecx
movzx ecx, r9b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor ebx, edx
xor ebx, r10d
mov dword [r13 + 0x90], ebx
xor esi, ebx
mov dword [r13 + 0x94], esi
mov r10d, esi
xor r10d, r8d
mov dword [r13 + 0x98], r10d
mov r11d, r10d
xor r11d, r9d
mov dword [r13 + 0x9c], r11d
mov ecx, r11d
shr ecx, 0x10
movzx edx, cl
mov ecx, r11d
shr rcx, 0x18
mov dword [rsp + 0x20], r11d
mov r8d, dword [rax + rdx*4 + 0xeeff0]
xor r8d, 0x36000000
movzx ecx, byte [rax + rcx*4 + 0xeebf0]
and r8d, 0xff000000
xor r8d, ecx
mov ecx, r11d
shr ecx, 8
movzx edx, cl
mov ecx, dword [rax + rdx*4 + 0xef3f0]
and ecx, 0xff0000
xor r8d, ecx
movzx ecx, r11b
mov edx, dword [rax + rcx*4 + 0xee7f0]
and edx, 0xff00
xor r8d, edx
xor r8d, ebx
xor esi, r8d
mov dword [r13 + 0xa0], r8d
mov dword [r13 + 0xa4], esi
xor esi, r10d
mov dword [r13 + 0xa8], esi
xor esi, r11d
mov dword [r13 + 0xac], esi
xor r10d, r10d
lea rsi, [rsp + 0x20]
neg esi
lea rcx, [rsp + 0x20]
and esi, 7
lea edi, [r10 + 4]
cmp esi, edi
jbe 0x140046003
mov r8d, edi
mov edx, r10d
jmp 0x140046010
mov edx, edi
mov r8d, esi
sub edx, esi
test esi, esi
je 0x14004601c
nop
mov byte [rcx], r10b
inc rcx
add r8d, 0xffffffff
jne 0x140046010
cmp edx, 8
jb 0x140046040
mov r8d, edx
shr r8, 3
nop dword [rax + rax]
mov qword [rcx], r10
add edx, 0xfffffff8
add rcx, 8
sub r8, 1
jne 0x140046030
test edx, edx
je 0x140046050
mov byte [rcx], r10b
lea rcx, [rcx + 1]
add edx, 0xffffffff
jne 0x140046044
cmp dword [rbp + 0x110], 1
jne 0x140046343
mov r11d, dword [r13 + 0xf0]
shl r11d, 2
test r11d, r11d
je 0x14004612a
lea ebx, [r11 + 2]
nop word [rax + rax]
lea ecx, [r14 - 2]
lea r8, [rcx*4]
mov r9d, dword [r8 + r13]
lea rdx, [r11*4]
mov ecx, dword [rdx + r13]
add r11d, 0xfffffffc
mov dword [r8 + r13], ecx
lea ecx, [r14 - 1]
mov dword [rdx + r13], r9d
lea r8, [rcx*4]
mov r9d, dword [r8 + r13]
lea ecx, [rbx - 1]
mov edx, ecx
mov ecx, dword [r13 + rcx*4]
mov dword [r8 + r13], ecx
mov ecx, r14d
mov dword [r13 + rdx*4], r9d
lea rdx, [rbx*4]
lea r8, [rcx*4]
mov ecx, dword [rdx + r13]
mov r9d, dword [r8 + r13]
mov dword [r8 + r13], ecx
lea ecx, [r14 + 1]
mov dword [rdx + r13], r9d
add r14d, 4
lea r8, [rcx*4]
mov r9d, dword [r8 + r13]
lea ecx, [rbx + 1]
mov edx, ecx
lea ebx, [rbx - 4]
mov ecx, dword [r13 + rcx*4]
mov dword [r8 + r13], ecx
lea ecx, [r14 - 2]
mov dword [rsp + 0x20], r9d
mov dword [r13 + rdx*4], r9d
cmp ecx, r11d
jb 0x140046080
lea rcx, [rsp + 0x20]
cmp esi, 4
jbe 0x140046139
mov edx, r10d
jmp 0x140046143
mov edx, edi
mov edi, esi
sub edx, esi
test esi, esi
je 0x14004614e
mov byte [rcx], r10b
inc rcx
add edi, 0xffffffff
jne 0x140046143
cmp edx, 8
jb 0x140046170
mov r8d, edx
shr r8, 3
nop word [rax + rax]
mov qword [rcx], r10
add edx, 0xfffffff8
add rcx, 8
sub r8, 1
jne 0x140046160
test edx, edx
je 0x140046180
mov byte [rcx], r10b
lea rcx, [rcx + 1]
add edx, 0xffffffff
jne 0x140046174
cmp dword [r13 + 0xf0], 1
jbe 0x140046343
nop
mov r10d, dword [r12 + 8]
lea r12, [r12 + 0x10]
mov ecx, r10d
inc r15d
shr rcx, 0x18
movzx r8d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov r9d, dword [rax + r8*4 + 0xed7f0]
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedbf0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedff0]
movzx ecx, r10b
mov r10d, dword [r12 - 4]
movzx edx, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr rcx, 0x18
xor r9d, dword [rax + rdx*4 + 0xee3f0]
movzx r8d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov dword [r12 - 8], r9d
mov r9d, dword [rax + r8*4 + 0xed7f0]
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedbf0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedff0]
movzx ecx, r10b
mov r10d, dword [r12]
movzx edx, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr rcx, 0x18
xor r9d, dword [rax + rdx*4 + 0xee3f0]
movzx r8d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov dword [r12 - 4], r9d
mov r9d, dword [rax + r8*4 + 0xed7f0]
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedbf0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedff0]
movzx ecx, r10b
mov r10d, dword [r12 + 4]
movzx edx, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr rcx, 0x18
xor r9d, dword [rax + rdx*4 + 0xee3f0]
movzx r8d, byte [rax + rcx*4 + 0xeebf0]
mov ecx, r10d
shr ecx, 0x10
movzx edx, cl
mov dword [r12], r9d
mov r9d, dword [rax + r8*4 + 0xed7f0]
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedbf0]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, byte [rax + rdx*4 + 0xeebf0]
xor r9d, dword [rax + rcx*4 + 0xedff0]
movzx ecx, r10b
movzx edx, byte [rax + rcx*4 + 0xeebf0]
xor r9d, dword [rax + rdx*4 + 0xee3f0]
mov dword [r12 + 4], r9d
cmp r15d, dword [r13 + 0xf0]
jb 0x140046190
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x14004635c
movups xmm0, xmmword [rax]
xor eax, eax
movups xmmword [r13 + 0x100], xmm0
jmp 0x140046370
xorps xmm0, xmm0
xor eax, eax
movups xmmword [r13 + 0x100], xmm0
jmp 0x140046370
mov eax, 0xffffff53
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400b06c0
mov rbx, qword [rsp + 0x208]
add rsp, 0x1b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret