Function at 0x140421890
Capabilities:
Encrypt data using aes via x86 extensions
Manually build aes constants
Resolve function by parsing pe exports

Disassembly:
cmp r8, 0x100
je 0x14041a16c
cmp r8, 0xc0
je 0x14041a436
mov eax, 0xffffffe0
cmp r8, 0x80
jne 0x14041a696
vmovups xmm0, xmmword [rdx]
vmovups xmmword [rcx], xmm0
vmovdqa xmm0, xmmword [rcx]
vaeskeygenassist xmm1, xmm0, 1
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm0, xmm1
vmovdqa xmmword [rcx + 0x10], xmm0
vaeskeygenassist xmm1, xmm0, 2
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x20], xmm0
vaeskeygenassist xmm1, xmm0, 4
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x30], xmm0
vaeskeygenassist xmm1, xmm0, 8
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x40], xmm0
vaeskeygenassist xmm1, xmm0, 0x10
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x50], xmm0
vaeskeygenassist xmm1, xmm0, 0x20
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x60], xmm0
vaeskeygenassist xmm1, xmm0, 0x40
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x70], xmm0
vaeskeygenassist xmm1, xmm0, 0x80
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x80], xmm0
vaeskeygenassist xmm1, xmm0, 0x1b
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0x90], xmm0
vaeskeygenassist xmm1, xmm0, 0x36
vpshufd xmm1, xmm1, 0xff
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpxor xmm2, xmm2, xmm3
vpslldq xmm3, xmm0, 0xc
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0xa0], xmm0
jmp 0x14041a694
vmovups xmm0, xmmword [rdx]
vmovups xmmword [rcx], xmm0
vmovups xmm0, xmmword [rdx + 0x10]
vmovups xmmword [rcx + 0x10], xmm0
vmovdqa xmm0, xmmword [rcx + 0x10]
vaeskeygenassist xmm1, xmm0, 1
vmovdqa xmm2, xmmword [rcx]
vpshufd xmm1, xmm1, 0xff
vpslldq xmm3, xmm2, 4
vpslldq xmm4, xmm2, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm2, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm2, xmm3, xmm2
vpxor xmm1, xmm1, xmm2
vmovdqa xmmword [rcx + 0x20], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm0, xmm2
vmovdqa xmmword [rcx + 0x30], xmm0
vaeskeygenassist xmm2, xmm0, 2
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0x40], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [rcx + 0x50], xmm0
vaeskeygenassist xmm2, xmm0, 4
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0x60], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [rcx + 0x70], xmm0
vaeskeygenassist xmm2, xmm0, 8
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0x80], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [rcx + 0x90], xmm0
vaeskeygenassist xmm2, xmm0, 0x10
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0xa0], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [rcx + 0xb0], xmm0
vaeskeygenassist xmm2, xmm0, 0x20
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0xc0], xmm1
vaeskeygenassist xmm2, xmm1, 0
vpshufd xmm2, xmm2, 0xaa
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpslldq xmm5, xmm0, 0xc
vpxor xmm3, xmm3, xmm5
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [rcx + 0xd0], xmm0
vaeskeygenassist xmm2, xmm0, 0x40
vpshufd xmm2, xmm2, 0xff
vpslldq xmm3, xmm1, 4
vpslldq xmm4, xmm1, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm1, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm2, xmm1
vmovdqa xmmword [rcx + 0xe0], xmm1
vaeskeygenassist xmm1, xmm1, 0
vpshufd xmm1, xmm1, 0xaa
vpslldq xmm2, xmm0, 4
vpslldq xmm3, xmm0, 8
vpslldq xmm4, xmm0, 0xc
vpxor xmm2, xmm2, xmm4
vpxor xmm2, xmm2, xmm3
vpxor xmm0, xmm2, xmm0
vpxor xmm0, xmm1, xmm0
vmovdqa xmmword [rcx + 0xf0], xmm0
jmp 0x14041a694
vmovups xmm0, xmmword [rdx]
vmovups xmmword [rcx], xmm0
mov rax, qword [rdx + 0x10]
mov qword [rcx + 0x10], rax
vmovdqa xmm0, xmmword [rcx]
vmovq xmm1, qword [rdx + 0x10]
vaeskeygenassist xmm2, xmm1, 1
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm4, xmm3
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x18], xmm0
vmovq qword [rcx + 0x28], xmm1
vaeskeygenassist xmm2, xmm1, 2
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x30], xmm0
vmovq qword [rcx + 0x40], xmm1
vaeskeygenassist xmm2, xmm1, 4
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x48], xmm0
vmovq qword [rcx + 0x58], xmm1
vaeskeygenassist xmm2, xmm1, 8
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x60], xmm0
vmovq qword [rcx + 0x70], xmm1
vaeskeygenassist xmm2, xmm1, 0x10
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x78], xmm0
vmovq qword [rcx + 0x88], xmm1
vaeskeygenassist xmm2, xmm1, 0x20
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0x90], xmm0
vmovq qword [rcx + 0xa0], xmm1
vaeskeygenassist xmm2, xmm1, 0x40
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpslldq xmm3, xmm1, 4
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0xa8], xmm0
vmovq qword [rcx + 0xb8], xmm1
vaeskeygenassist xmm2, xmm1, 0x80
vpshufd xmm2, xmm2, 0x55
vpslldq xmm3, xmm0, 4
vpslldq xmm4, xmm0, 8
vpxor xmm3, xmm3, xmm4
vpslldq xmm4, xmm0, 0xc
vpxor xmm3, xmm3, xmm4
vpxor xmm0, xmm3, xmm0
vpxor xmm0, xmm2, xmm0
vpshufd xmm2, xmm0, 0xff
vpsllq xmm3, xmm1, 0x20
vpxor xmm1, xmm3, xmm1
vpxor xmm1, xmm1, xmm2
vmovdqu xmmword [rcx + 0xc0], xmm0
vmovq qword [rcx + 0xd0], xmm1
xor eax, eax
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
mov r12d, r8d
mov r15, rdx
mov rdi, rcx
mov rax, qword [0x14059d380]
xor rax, rsp
mov qword [rsp + 0x240], rax
cmp r8d, 0x80
je 0x1404218ea
cmp r12d, 0x100
je 0x1404218f1
mov r14d, 0xffffffe0
cmp r12d, 0xc0
jne 0x14042204b
mov eax, reloc.WS2_32.dll_inet_ntoa
jmp 0x1404218f6
mov eax, 0xa
jmp 0x1404218f6
mov eax, 0xe
mov dword [rdi], eax
cmp byte [0x1405acb00], 0
jne 0x140421c27
mov cl, 1
xor eax, eax
nop dword [rax]
mov byte [rsp + rax + 0x140], cl
movzx ecx, cl
mov byte [rsp + rcx + 0x40], al
lea edx, [rcx + rcx]
xor dl, cl
sar cl, 7
and cl, 0x1b
xor cl, dl
mov byte [rsp + rax + 0x141], cl
movzx ecx, cl
lea edx, [rax + 1]
mov byte [rsp + rcx + 0x40], dl
lea edx, [rcx + rcx]
xor dl, cl
sar cl, 7
and cl, 0x1b
xor cl, dl
add rax, 2
cmp rax, 0x100
jne 0x140421910
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], rdi
vmovaps ymm0, ymmword [0x140459fa0]
vmovaps ymmword [0x1405acb20], ymm0
movabs rax, 0x360000001b
mov qword [0x1405acb40], rax
mov byte [0x1405acb50], 0x63
mov byte [0x1405aecb3], 0
mov edx, 1
lea rax, [0x1405acb50]
lea rcx, [0x1405aec50]
nop word cs:[rax + rax]
movzx r8d, byte [rsp + rdx + 0x40]
xor r8, 0xff
movzx r8d, byte [rsp + r8 + 0x140]
mov r9d, r8d
mov r10d, r8d
mov r11d, r8d
mov ebx, r8d
rol bl, 1
rol r9b, 2
rol r10b, 3
xor r9b, r8b
rol r11b, 4
xor r11b, bl
xor r9b, r11b
xor r9b, r10b
movzx r8d, r9b
xor r8, 0x63
mov byte [rdx + rax], r8b
mov byte [r8 + rcx], dl
inc rdx
cmp rdx, 0x100
jne 0x1404219b0
movzx r9d, byte [rsp + 0x4e]
movzx r10d, byte [rsp + 0x49]
movzx r11d, byte [rsp + 0x4d]
movzx r14d, byte [rsp + 0x4b]
mov rdx, 0xfffffffffffffc00
xor r8d, r8d
lea r13, [0x1405ad450]
lea rbp, [0x1405ad850]
movzx esi, r9w
movzx ebx, r10w
movzx r9d, r11w
movzx r10d, r14w
jmp 0x140421aa7
mov edi, r11d
shl edi, 0x18
or edi, r14d
shl r14d, 8
or r14d, r11d
lea r11, [0x1405ad050]
mov dword [rdx + r11 + 0x400], r14d
shl r14d, 8
or r15d, r14d
mov dword [rdx + r13 + 0x400], r15d
shld r15d, r14d, 8
lea r11, [0x1405acc50]
mov dword [rdx + r11 + 0x400], edi
mov dword [rdx + rbp + 0x400], r15d
inc r8
add rdx, 4
je 0x140421c11
movzx r11d, byte [r8 + rax]
lea r14d, [r11 + r11]
mov r15d, r11d
sar r15b, 7
and r15b, 0x1b
xor r15b, r14b
movzx r14d, r15b
mov r15d, r11d
shl r15d, 8
or r15d, r14d
xor r14b, r11b
mov r12d, r11d
shl r12d, 0x10
or r12d, r15d
movzx r14d, r14b
mov r15d, r14d
shl r15d, 0x18
or r15d, r12d
lea rdi, [0x1405adc50]
mov dword [rdx + rdi + 0x400], r15d
shl r12d, 8
or r12d, r14d
lea rdi, [0x1405ae050]
mov dword [rdx + rdi + 0x400], r12d
shl r12d, 8
or r11d, r12d
lea rdi, [0x1405ae450]
mov dword [rdx + rdi + 0x400], r11d
shld r11d, r12d, 8
lea rdi, [0x1405ae850]
mov dword [rdx + rdi + 0x400], r11d
movzx r12d, byte [r8 + rcx]
mov r14d, 0
mov r15d, 0
mov r11d, 0
test r12, r12
je 0x140421a50
movzx r11d, byte [rsp + r12 + 0x40]
lea r14d, [r11 + rsi]
imul r15d, r14d, 0x203
shr r15d, 0x11
mov r12d, r15d
shl r12d, 8
sub r15d, r12d
add r15d, r14d
movzx r14d, r15w
movzx r14d, byte [rsp + r14 + 0x140]
lea r15d, [r11 + rbx]
imul r12d, r15d, 0x203
shr r12d, 0x11
mov edi, r12d
shl edi, 8
sub r12d, edi
add r12d, r15d
movzx edi, r12w
movzx edi, byte [rsp + rdi + 0x140]
shl edi, 8
or edi, r14d
lea r14d, [r11 + r9]
imul r15d, r14d, 0x203
shr r15d, 0x11
mov r12d, r15d
shl r12d, 8
sub r15d, r12d
add r15d, r14d
movzx r14d, r15w
movzx r15d, byte [rsp + r14 + 0x140]
mov r14d, r15d
shl r14d, 0x10
or r14d, edi
add r11d, r10d
imul edi, r11d, 0x203
shr edi, 0x11
mov r12d, edi
shl r12d, 8
sub edi, r12d
add edi, r11d
movzx r11d, di
movzx r11d, byte [rsp + r11 + 0x140]
jmp 0x140421a50
mov byte [0x1405acb00], 1
mov rdi, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
mov r12, qword [rsp + 0x28]
lea rbx, [rdi + 0x10]
mov ecx, 0x2000000
vzeroupper
call fcn.140419cc0
test eax, eax
je 0x140421c52
mov eax, ebx
shr eax, 2
and eax, 3
mov esi, 4
sub esi, eax
test eax, eax
cmove esi, eax
jmp 0x140421c54
xor esi, esi
mov qword [rdi + 8], rsi
lea r14, [rbx + rsi*4]
mov ecx, 0x2000000
call fcn.140419cc0
test eax, eax
je 0x140421c9e
mov esi, r12d
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.140428330
mov rcx, r14
mov rdx, r15
mov r8, rsi
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x140419f50
cmp r12d, 0x20
jb 0x140421da8
mov eax, r12d
shr eax, 5
cmp r12d, 0x400
jb 0x140421ccb
lea rcx, [rdi + rsi*4]
sub rcx, r15
add rcx, 0x10
cmp rcx, 0x80
jae 0x140421d41
xor ecx, ecx
mov rdx, rcx
not rdx
add rdx, rax
mov r8, rax
and r8, 3
je 0x140421cf0
nop
mov r9d, dword [r15 + rcx*4]
mov dword [r14 + rcx*4], r9d
inc rcx
dec r8
jne 0x140421ce0
cmp rdx, 3
jb 0x140421da8
lea rdx, [rdi + rsi*4]
add rdx, 0x1c
nop word cs:[rax + rax]
mov r8d, dword [r15 + rcx*4]
mov dword [rdx + rcx*4 - 0xc], r8d
mov r8d, dword [r15 + rcx*4 + 4]
mov dword [rdx + rcx*4 - 8], r8d
mov r8d, dword [r15 + rcx*4 + 8]
mov dword [rdx + rcx*4 - 4], r8d
mov r8d, dword [r15 + rcx*4 + 0xc]
mov dword [rdx + rcx*4], r8d
add rcx, 4
cmp rax, rcx
jne 0x140421d10
jmp 0x140421da8
lea rdx, [rsi*4]
mov ecx, eax
and ecx, 0xffffffe0
add rdx, rdi
add rdx, 0x70
shr r12d, 3
and r12d, 0xffffff80
xor r8d, r8d
vmovups ymm0, ymmword [r15 + r8]
vmovups ymm1, ymmword [r15 + r8 + 0x20]
vmovups ymm2, ymmword [r15 + r8 + 0x40]
vmovups ymm3, ymmword [r15 + r8 + 0x60]
vmovups ymmword [rdx + r8 - 0x60], ymm0
vmovups ymmword [rdx + r8 - 0x40], ymm1
vmovups ymmword [rdx + r8 - 0x20], ymm2
vmovups ymmword [rdx + r8], ymm3
sub r8, 0xffffffffffffff80
cmp r12, r8
jne 0x140421d60
cmp rcx, rax
jne 0x140421ccd
mov eax, dword [rdi]
cmp eax, 0xa
je 0x140421fa0
cmp eax, 0xc
je 0x140421ee0
xor r14d, r14d
cmp eax, 0xe
jne 0x14042204b
mov r9d, dword [rdi + rsi*4 + 0x10]
lea rax, [rdi + rsi*4]
add rax, 0x4c
xor r14d, r14d
lea rcx, [0x1405acb20]
lea rdx, [0x1405acb50]
xor r8d, r8d
nop dword [rax]
xor r9d, dword [r8 + rcx]
mov ebx, dword [rax + r8*8 - 0x20]
movzx esi, bh
movzx r10d, byte [rsi + rdx]
xor r10d, r9d
mov r9d, ebx
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + rdx]
shl r9d, 8
mov r11, rbx
shr r11, 0x18
movzx r11d, byte [r11 + rdx]
shl r11d, 0x10
xor r11d, r10d
xor r11d, r9d
movzx r9d, bl
movzx r9d, byte [r9 + rdx]
shl r9d, 0x18
xor r9d, r11d
mov dword [rax + r8*8 - 0x1c], r9d
mov r10d, dword [rax + r8*8 - 0x38]
xor r10d, r9d
mov dword [rax + r8*8 - 0x18], r10d
xor r10d, dword [rax + r8*8 - 0x34]
mov dword [rax + r8*8 - 0x14], r10d
xor r10d, dword [rax + r8*8 - 0x30]
mov dword [rax + r8*8 - 0x10], r10d
movzx r11d, r10b
movzx r11d, byte [r11 + rdx]
xor r11d, dword [rax + r8*8 - 0x2c]
mov esi, r10d
shr esi, 8
movzx esi, sil
movzx esi, byte [rsi + rdx]
shl esi, 8
xor esi, r11d
mov r11d, r10d
shr r11d, 0x10
movzx r11d, r11b
movzx r11d, byte [r11 + rdx]
shl r11d, 0x10
shr r10, 0x18
movzx r10d, byte [r10 + rdx]
shl r10d, 0x18
xor r10d, r11d
xor r10d, esi
mov dword [rax + r8*8 - 0xc], r10d
xor r10d, dword [rax + r8*8 - 0x28]
mov dword [rax + r8*8 - 8], r10d
xor r10d, dword [rax + r8*8 - 0x24]
mov dword [rax + r8*8 - 4], r10d
xor r10d, ebx
mov dword [rax + r8*8], r10d
add r8, 4
cmp r8, 0x1c
jne 0x140421df0
jmp 0x14042204b
mov r9d, dword [rdi + rsi*4 + 0x10]
lea rax, [rdi + rsi*4]
add rax, 0x3c
xor r14d, r14d
lea rcx, [0x1405acb20]
lea rdx, [0x1405acb50]
xor r8d, r8d
nop word cs:[rax + rax]
xor r9d, dword [r8 + rcx]
mov ebx, dword [rax - 0x18]
movzx esi, bh
movzx r10d, byte [rsi + rdx]
xor r10d, r9d
mov r9d, ebx
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + rdx]
shl r9d, 8
mov r11, rbx
shr r11, 0x18
movzx r11d, byte [r11 + rdx]
shl r11d, 0x10
xor r11d, r10d
xor r11d, r9d
movzx r9d, bl
movzx r9d, byte [r9 + rdx]
shl r9d, 0x18
xor r9d, r11d
mov dword [rax - 0x14], r9d
mov r10d, dword [rax - 0x28]
xor r10d, r9d
mov dword [rax - 0x10], r10d
xor r10d, dword [rax - 0x24]
mov dword [rax - 0xc], r10d
xor r10d, dword [rax - 0x20]
mov dword [rax - 8], r10d
xor r10d, dword [rax - 0x1c]
mov dword [rax - 4], r10d
xor r10d, ebx
mov dword [rax], r10d
add r8, 4
add rax, 0x18
cmp r8, 0x20
jne 0x140421f10
jmp 0x14042204b
mov r9d, dword [rdi + rsi*4 + 0x10]
lea rax, [rdi + rsi*4]
add rax, 0x2c
xor r14d, r14d
lea rcx, [0x1405acb20]
lea rdx, [0x1405acb50]
xor r8d, r8d
nop word cs:[rax + rax]
xor r9d, dword [r8 + rcx]
mov ebx, dword [rax + r8*4 - 0x10]
movzx esi, bh
movzx r10d, byte [rsi + rdx]
xor r10d, r9d
mov r9d, ebx
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + rdx]
shl r9d, 8
mov r11, rbx
shr r11, 0x18
movzx r11d, byte [r11 + rdx]
shl r11d, 0x10
xor r11d, r10d
xor r11d, r9d
movzx r9d, bl
movzx r9d, byte [r9 + rdx]
shl r9d, 0x18
xor r9d, r11d
mov dword [rax + r8*4 - 0xc], r9d
mov r10d, dword [rax + r8*4 - 0x18]
xor r10d, r9d
mov dword [rax + r8*4 - 8], r10d
xor r10d, dword [rax + r8*4 - 0x14]
mov dword [rax + r8*4 - 4], r10d
xor r10d, ebx
mov dword [rax + r8*4], r10d
add r8, 4
cmp r8, 0x28
jne 0x140421fd0
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
vzeroupper
call fcn.140428330
mov eax, r14d
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret