Function at 0x140088d20
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov r10d, edx
mov eax, r8d
mov edx, dword [rcx + 4]
mov rbx, rcx
mov r13, r9
add rax, qword [rcx + 0xa0]
bswap rax
mov qword [rsp + 0x74], rax
mov eax, edx
or eax, r8d
je 0x140088d80
cmp edx, 3
jbe 0x140089dad
test r8d, r8d
jne 0x140089dad
mov r8d, 0x10
lea rax, [rsp + rdx + 0x70]
sub r8, rdx
jmp 0x140088d8b
lea rax, [rsp + 0x74]
mov r8d, 0xc
mov rdx, rax
mov rcx, rbx
mov esi, 0x24
add rbx, 0xc
call fcn.140086920
mov eax, dword [rbx - 4]
lea eax, [rax + rax*2]
lea eax, [rax*4]
lea rdi, [rax*4]
sub rsi, rax
lea rax, [rsp + 0xb0]
lea rdx, [rbx + rsi*4]
mov r8, rdi
mov rcx, rax
mov r14, rax
mov qword [rsp + 0x20], rax
call sub.msvcrt.dll_memcpy
mov r8d, esi
lea rcx, [r14 + rdi]
mov rdx, rbx
shl r8, 2
mov ebx, 0x20
lea r14, [rsp + 0xbc]
call sub.msvcrt.dll_memcpy
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x1a8], r13
nop word [rax + rax]
mov rax, qword [rsp + 0x134]
mov rdx, qword [rsp + 0x20]
mov r8d, 0x84
mov rcx, r14
lea r13, [0x14027dbe0]
lea rsi, [0x14027dfe0]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x13c]
lea rbx, [0x14027d3e0]
mov dword [rsp + 0x88], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x80]
mov ebp, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0xc8]
xor dword [rsp + 0x100], ecx
mov r11d, dword [rsp + 0x88]
mov rdi, rax
xor eax, ebp
vmovq xmm0, qword [rsp + 0xf8]
shr rdi, 0x20
movzx r9d, al
vmovq xmm1, qword [rsp + 0xc0]
mov r15d, dword [rsp + 0xf8]
xor r11d, ecx
mov ecx, eax
mov edx, edi
xor edx, dword [rsp + 0xc4]
shr ecx, 0x10
mov r9d, dword [rbx + r9*4]
movzx ebx, dh
movzx r10d, dl
movzx ecx, cl
lea rdi, [0x14027d7e0]
vpxor xmm0, xmm0, xmm1
vmovq qword [rsp + 0xf8], xmm0
mov r8d, dword [r13 + rcx*4]
movzx ecx, ah
shr eax, 0x18
mov r12d, dword [rsi + rax*4]
mov eax, edx
shr edx, 0x10
mov ecx, dword [rdi + rcx*4]
shr eax, 0x18
movzx edx, dl
mov eax, dword [rsi + rax*4]
mov esi, dword [rdi + rbx*4]
lea rbx, [0x14027d3e0]
xor r12d, r9d
mov r10d, dword [rbx + r10*4]
xor r12d, r8d
mov edi, eax
xor r12d, ecx
xor ecx, esi
xor edi, r10d
xor edi, dword [r13 + rdx*4]
mov edx, r11d
xor r9d, r10d
xor edi, esi
shr edx, 0x18
lea rsi, [0x14027dfe0]
mov r10d, dword [rsi + rdx*4]
mov edx, r11d
shr edx, 0x10
movzx edx, dl
xor eax, r10d
mov esi, dword [r13 + rdx*4]
movzx edx, r11b
mov edx, dword [rbx + rdx*4]
mov ebx, r11d
movzx ebx, bh
xor r8d, esi
xor r9d, edx
xor r10d, edx
mov edx, dword [rsp + 0xbc]
mov r11, rbx
lea rbx, [0x14027d7e0]
xor r10d, esi
lea rsi, [0x14027dfe0]
xor r10d, dword [rbx + r11*4]
mov r11d, edx
shr r11d, 0x18
mov r11d, dword [rsi + r11*4]
mov esi, edx
shr esi, 0x10
movzx esi, sil
xor eax, r11d
mov r13d, dword [r13 + rsi*4]
movzx esi, dh
movzx edx, dl
mov esi, dword [rbx + rsi*4]
lea rbx, [0x14027d3e0]
xor r11d, dword [rbx + rdx*4]
xor r8d, r13d
mov edx, r12d
xor ecx, esi
xor r11d, r13d
xor edx, eax
mov r13d, r9d
xor r11d, esi
mov esi, edi
and edx, 0xff000000
shr r13d, 0x18
xor esi, r8d
xor r13d, r12d
and esi, 0xff0000
movzx r13d, r13b
or edx, esi
mov esi, r9d
xor esi, r11d
movzx esi, sil
or edx, esi
mov esi, r10d
xor esi, ecx
and esi, 0xff00
or edx, esi
mov esi, eax
shl esi, 8
mov dword [rsp + 0xb0], edx
xor esi, edi
and esi, 0xff000000
or esi, r13d
mov r13d, r8d
shl r13d, 8
xor r13d, r10d
and r13d, 0xff0000
or esi, r13d
mov r13d, ecx
shl r13d, 8
xor r13d, r11d
and r13d, 0xff00
or esi, r13d
mov r13d, r9d
mov dword [rsp + 0xb4], esi
mov esi, eax
shr r13d, 0x10
shl esi, 0x10
xor r13d, edi
xor esi, r10d
movzx r13d, r13b
and esi, 0xff000000
or esi, r13d
mov r13d, r8d
shl r13d, 0x10
shl eax, 0x18
shr r9d, 8
xor r13d, r11d
xor eax, r11d
shr r8d, 8
and r13d, 0xff0000
xor r9d, r10d
and eax, 0xff000000
xor r8d, r12d
or esi, r13d
mov r13d, ecx
movzx r9d, r9b
shr ecx, 8
shr r13d, 0x10
or eax, r9d
and r8d, 0xff0000
xor ecx, edi
xor r13d, r12d
or eax, r8d
and ecx, 0xff00
and r13d, 0xff00
or eax, ecx
or esi, r13d
mov dword [rsp + 0xbc], eax
mov dword [rsp + 0xb8], esi
sub dword [rsp + 0x28], 1
jne 0x140088e08
lea rax, [rsp + 0xd4]
mov r14d, r15d
mov dword [rsp + 0x64], 0xd
mov edi, ebp
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd0]
xor r14d, ebp
mov qword [rsp + 0x68], rax
jmp 0x1400890f7
mov edi, dword [rsp + 0xc0]
xor edi, edx
xor r14d, edx
mov rcx, qword [rsp + 0x28]
mov r8d, 0x6c
mov eax, dword [rsp + 0xd4]
mov dword [rsp + 0x38], edi
vmovdqu xmm3, xmmword [rsp + 0x12c]
mov dword [rsp + 0xc0], edi
lea rdi, [0x14027dbe0]
xor eax, edx
xor edx, dword [rsp + 0x11c]
mov dword [rsp + 0xf8], r14d
mov esi, edx
mov dword [rsp + 0x11c], edx
mov rdx, qword [rsp + 0x20]
vmovdqu xmm2, xmmword [rsp + 0x11c]
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0xd4], eax
mov eax, dword [rsp + 0x13c]
vmovdqu xmmword [rsp + 0x90], xmm3
vmovdqu xmmword [rsp + 0x80], xmm2
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
vmovdqu xmm4, xmmword [rsp + 0x80]
lea r10, [0x14027d7e0]
lea r11, [0x14027d3e0]
mov qword [rsp + 0xc0], rax
mov r13d, eax
mov rax, qword [rsp + 0x98]
vmovdqu xmmword [rsp + 0xb0], xmm4
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0xd0], eax
mov eax, esi
shr eax, 0x10
movzx eax, al
mov r9d, dword [rdi + rax*4]
mov eax, esi
movzx eax, ah
mov r15d, dword [r10 + rax*4]
movzx eax, sil
shr esi, 0x18
mov ebx, dword [r11 + rax*4]
mov eax, dword [rsp + 0xb4]
mov edx, esi
lea rsi, [0x14027dfe0]
mov r12d, dword [rsi + rdx*4]
mov edx, eax
shr edx, 0x18
xor r12d, ebx
mov r8d, dword [rsi + rdx*4]
movzx edx, ah
xor r12d, r9d
mov ecx, dword [r10 + rdx*4]
movzx edx, al
shr eax, 0x10
xor r12d, r15d
mov edx, dword [r11 + rdx*4]
mov r11d, dword [rsp + 0xb8]
movzx eax, al
mov ebp, r8d
xor ebp, edx
xor ebp, dword [rdi + rax*4]
mov eax, r11d
shr eax, 0x18
xor ebp, ecx
mov r10d, dword [rsi + rax*4]
mov eax, r11d
movzx esi, r11b
shr eax, 0x10
movzx eax, al
xor r8d, r10d
mov eax, dword [rdi + rax*4]
mov dword [rsp + 0x34], eax
lea rax, [0x14027d3e0]
mov esi, dword [rax + rsi*4]
mov eax, r11d
movzx eax, ah
mov r11, rax
xor edx, esi
mov eax, dword [rsp + 0x34]
xor r10d, esi
xor edx, ebx
mov ebx, dword [rsp + 0xbc]
lea rsi, [0x14027dfe0]
xor r10d, eax
lea rax, [0x14027d7e0]
xor r10d, dword [rax + r11*4]
mov r11d, ebx
mov eax, dword [rsp + 0x34]
shr r11d, 0x18
mov r11d, dword [rsi + r11*4]
mov esi, ebx
shr esi, 0x10
movzx esi, sil
xor r8d, r11d
mov esi, dword [rdi + rsi*4]
movzx edi, bh
movzx ebx, bl
xor eax, esi
xor eax, r9d
mov r9, rdi
lea rdi, [0x14027d7e0]
mov r9d, dword [rdi + r9*4]
xor ecx, r9d
xor ecx, r15d
lea r15, [0x14027d3e0]
xor r11d, dword [r15 + rbx*4]
mov ebx, ebp
xor r11d, esi
mov esi, ecx
xor r11d, r9d
xor ebx, eax
shl esi, 8
mov r9d, ebx
mov ebx, r10d
xor esi, r11d
xor ebx, ecx
and r9d, 0xff0000
and esi, 0xff00
and ebx, 0xff00
or r9d, ebx
mov ebx, edx
xor ebx, r11d
movzx ebx, bl
or r9d, ebx
mov ebx, r12d
xor ebx, r8d
and ebx, 0xff000000
or r9d, ebx
mov ebx, eax
shl ebx, 8
mov dword [rsp + 0xb0], r9d
xor ebx, r10d
and ebx, 0xff0000
or ebx, esi
mov esi, r8d
shl esi, 8
xor esi, ebp
and esi, 0xff000000
or ebx, esi
mov esi, edx
shr esi, 0x18
xor esi, r12d
movzx esi, sil
or ebx, esi
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0xb4], ebx
mov ebx, r8d
mov edi, dword [rsp + 0x3c]
vmovdqu xmm2, xmmword [rsp + 0x12c]
shl ebx, 0x10
mov esi, ebx
mov ebx, edx
vmovdqu xmmword [rsp + 0x90], xmm2
shr ebx, 0x10
xor esi, r10d
mov r15d, ebx
mov ebx, eax
and esi, 0xff000000
xor r15d, ebp
shl ebx, 0x10
movzx r15d, r15b
or esi, r15d
mov r15d, ebx
mov ebx, ecx
xor r15d, r11d
shl r8d, 0x18
xor r14d, r9d
xor r13d, r9d
shr edx, 8
xor r8d, r11d
shr eax, 8
and r15d, 0xff0000
xor edx, r10d
and r8d, 0xff000000
xor eax, r12d
shr ecx, 8
movzx edx, dl
xor ecx, ebp
and eax, 0xff0000
shr ebx, 0x10
or edx, r8d
and ecx, 0xff00
or esi, r15d
mov r15d, ebx
or eax, edx
xor r15d, r12d
mov dword [rsp + 0x11c], r14d
mov ebx, esi
or eax, ecx
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
xor edi, r9d
mov dword [rsp + 0x44], eax
and r15d, 0xff00
vmovdqu xmm5, xmmword [rsp + 0x11c]
mov r8d, 0x6c
or ebx, r15d
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0xd8]
lea r12, [0x14027d3e0]
mov dword [rsp + 0x40], ebx
xor eax, r9d
mov dword [rsp + 0xb8], ebx
mov dword [rsp + 0xd8], eax
mov esi, eax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0xc0], r13d
mov dword [rsp + 0xf8], edi
vmovdqu xmmword [rsp + 0x80], xmm5
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea r10, [0x14027dbe0]
vmovdqu xmm3, xmmword [rsp + 0x80]
lea r9, [0x14027d7e0]
lea r8, [0x14027dfe0]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
vmovdqu xmmword [rsp + 0xb0], xmm3
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0xd0], eax
mov eax, r14d
shr eax, 0x10
movzx eax, al
mov ebp, dword [r10 + rax*4]
mov eax, r14d
movzx eax, ah
mov r15d, dword [r9 + rax*4]
movzx eax, r14b
shr r14d, 0x18
mov r11d, dword [r12 + rax*4]
mov eax, dword [rsp + 0xb4]
mov r13d, dword [r8 + r14*4]
mov r14, r10
mov ebx, eax
shr ebx, 0x18
xor r13d, r11d
mov edx, ebx
xor r13d, ebp
mov rbx, r12
mov r8d, dword [r8 + rdx*4]
movzx edx, ah
xor r13d, r15d
mov ecx, dword [r9 + rdx*4]
movzx edx, al
mov r9d, dword [rsp + 0xb8]
shr eax, 0x10
mov edx, dword [r12 + rdx*4]
movzx eax, al
mov r12d, r8d
xor r12d, edx
xor r12d, dword [r10 + rax*4]
mov eax, r9d
shr eax, 0x18
lea r10, [0x14027dfe0]
xor r12d, ecx
mov r10d, dword [r10 + rax*4]
mov eax, r9d
shr eax, 0x10
movzx eax, al
xor r8d, r10d
mov eax, dword [r14 + rax*4]
movzx r14d, r9b
mov r14d, dword [rbx + r14*4]
mov ebx, r9d
movzx ebx, bh
mov r9, rbx
xor r10d, r14d
lea rbx, [0x14027d7e0]
xor edx, r14d
xor r10d, eax
xor r10d, dword [rbx + r9*4]
xor edx, r11d
mov r9d, dword [rsp + 0xbc]
lea r14, [0x14027dfe0]
lea rbx, [0x14027dbe0]
mov r11d, r9d
shr r11d, 0x18
mov r11d, dword [r14 + r11*4]
mov r14d, r9d
shr r14d, 0x10
movzx r14d, r14b
xor r8d, r11d
mov r14d, dword [rbx + r14*4]
mov ebx, r9d
movzx r9d, r9b
xor eax, r14d
xor eax, ebp
movzx ebp, bh
lea rbx, [0x14027d7e0]
mov ebp, dword [rbx + rbp*4]
xor ecx, ebp
xor ecx, r15d
lea r15, [0x14027d3e0]
xor r11d, dword [r15 + r9*4]
mov r15d, edx
xor r11d, r14d
mov r14d, eax
xor r11d, ebp
mov ebp, r12d
xor ebp, eax
mov r9d, ebp
mov ebp, r10d
xor ebp, ecx
and r9d, 0xff0000
and ebp, 0xff00
or r9d, ebp
mov ebp, edx
xor ebp, r11d
movzx ebp, bpl
or r9d, ebp
mov ebp, r13d
xor ebp, r8d
and ebp, 0xff000000
or r9d, ebp
mov ebp, ecx
shl r14d, 8
shl ebp, 8
xor r14d, r10d
shr r15d, 0x10
mov dword [rsp + 0xb0], r9d
xor ebp, r11d
and r14d, 0xff0000
xor r15d, r12d
and ebp, 0xff00
movzx r15d, r15b
or r14d, ebp
mov ebp, r8d
shl ebp, 8
xor ebp, r12d
and ebp, 0xff000000
or r14d, ebp
mov ebp, edx
shr edx, 8
shr ebp, 0x18
xor ebp, r13d
movzx ebp, bpl
or r14d, ebp
mov ebp, r8d
shl r8d, 0x18
shl ebp, 0x10
xor r8d, r11d
mov dword [rsp + 0xb4], r14d
xor ebp, r10d
and r8d, 0xff000000
and ebp, 0xff000000
or ebp, r15d
mov r15d, eax
shl r15d, 0x10
xor r15d, r11d
and r15d, 0xff0000
or ebp, r15d
mov r15d, ecx
shr r15d, 0x10
xor r15d, r13d
and r15d, 0xff00
or ebp, r15d
xor edx, r10d
shr eax, 8
xor edi, r9d
xor eax, r13d
shr ecx, 8
movzx edx, dl
mov dword [rsp + 0x4c], ebp
or edx, r8d
xor ecx, r12d
and eax, 0xff0000
xor esi, r9d
or eax, edx
and ecx, 0xff00
mov dword [rsp + 0xb8], ebp
mov r8d, 0x6c
or eax, ecx
mov dword [rsp + 0x50], eax
mov rdx, qword [rsp + 0x20]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x3c]
vmovdqu xmm5, xmmword [rsp + 0x12c]
mov dword [rsp + 0x11c], edi
xor eax, r9d
mov rcx, qword [rsp + 0x28]
vmovdqu xmm4, xmmword [rsp + 0x11c]
mov dword [rsp + 0xfc], esi
mov dword [rsp + 0x54], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x34]
vmovdqu xmmword [rsp + 0x90], xmm5
vmovdqu xmmword [rsp + 0x80], xmm4
xor eax, r9d
mov dword [rsp + 0x34], eax
mov dword [rsp + 0xd8], eax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea r10, [0x14027dbe0]
lea r11, [0x14027d3e0]
vmovdqu xmm2, xmmword [rsp + 0x80]
lea r9, [0x14027dfe0]
mov r13, r10
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
vmovdqu xmmword [rsp + 0xb0], xmm2
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0xd0], eax
mov eax, edi
shr eax, 0x10
movzx eax, al
mov r12d, dword [r10 + rax*4]
mov eax, edi
movzx eax, ah
mov r15d, dword [rbx + rax*4]
movzx eax, dil
shr edi, 0x18
mov ebp, dword [r11 + rax*4]
mov ecx, dword [r9 + rdi*4]
mov eax, dword [rsp + 0xb4]
xor ecx, ebp
mov edi, ecx
mov ecx, eax
shr ecx, 0x18
xor edi, r12d
mov edx, ecx
xor edi, r15d
mov r8d, dword [r9 + rdx*4]
movzx edx, ah
mov ecx, dword [rbx + rdx*4]
movzx edx, al
shr eax, 0x10
mov rbx, r11
mov edx, dword [r11 + rdx*4]
movzx eax, al
mov r11d, r8d
xor r11d, edx
xor r11d, dword [r10 + rax*4]
mov r10d, dword [rsp + 0xb8]
xor r11d, ecx
mov eax, r10d
shr eax, 0x18
mov r9d, dword [r9 + rax*4]
mov eax, r10d
shr eax, 0x10
movzx eax, al
xor r8d, r9d
mov eax, dword [r13 + rax*4]
movzx r13d, r10b
mov r13d, dword [rbx + r13*4]
mov ebx, r10d
movzx ebx, bh
mov r10, rbx
xor r9d, r13d
lea rbx, [0x14027d7e0]
xor edx, r13d
xor r9d, eax
xor r9d, dword [rbx + r10*4]
lea r13, [0x14027dfe0]
xor edx, ebp
mov ebp, dword [rsp + 0xbc]
lea rbx, [0x14027dbe0]
mov r10d, ebp
shr r10d, 0x18
mov r10d, dword [r13 + r10*4]
mov r13d, ebp
shr r13d, 0x10
movzx r13d, r13b
xor r8d, r10d
mov r13d, dword [rbx + r13*4]
mov ebx, ebp
movzx ebp, bpl
movzx ebx, bh
xor eax, r13d
xor eax, r12d
mov r12, rbx
lea rbx, [0x14027d7e0]
mov r12d, dword [rbx + r12*4]
xor ecx, r12d
xor ecx, r15d
lea r15, [0x14027d3e0]
xor r10d, dword [r15 + rbp*4]
mov ebp, r11d
xor r10d, r13d
xor ebp, eax
mov r13d, ecx
xor r10d, r12d
mov r12d, r9d
and ebp, 0xff0000
shl r13d, 8
xor r12d, ecx
xor r13d, r10d
and r12d, 0xff00
and r13d, 0xff00
or ebp, r12d
mov r12d, edx
xor r12d, r10d
movzx r12d, r12b
or ebp, r12d
mov r12d, edi
xor r12d, r8d
and r12d, 0xff000000
or ebp, r12d
mov r12d, eax
shl r12d, 8
mov dword [rsp + 0xb0], ebp
xor r12d, r9d
and r12d, 0xff0000
or r12d, r13d
mov r13d, r8d
shl r13d, 8
xor r13d, r11d
and r13d, 0xff000000
or r12d, r13d
mov r13d, edx
shr r13d, 0x18
xor r13d, edi
movzx r13d, r13b
or r12d, r13d
mov r13d, edx
shr edx, 8
mov dword [rsp + 0x58], r12d
shr r13d, 0x10
xor edx, r9d
mov dword [rsp + 0xb4], r12d
mov r12d, r8d
xor r13d, r11d
shl r8d, 0x18
shl r12d, 0x10
movzx r13d, r13b
xor r8d, r10d
movzx edx, dl
xor r12d, r9d
and r8d, 0xff000000
and r12d, 0xff000000
or edx, r8d
mov r8d, 0x70
or r12d, r13d
mov r13d, eax
shr eax, 8
shl r13d, 0x10
xor eax, edi
xor r13d, r10d
and eax, 0xff0000
and r13d, 0xff0000
or eax, edx
or r12d, r13d
mov r13d, ecx
shr ecx, 8
shr r13d, 0x10
xor ecx, r11d
xor r13d, edi
and ecx, 0xff00
and r13d, 0xff00
or eax, ecx
or r12d, r13d
mov dword [rsp + 0x60], r12d
mov dword [rsp + 0xb8], r12d
mov rdx, qword [rsp + 0x20]
mov dword [rsp + 0x5c], eax
mov rcx, qword [rsp + 0x68]
vmovdqu xmm4, xmmword [rsp + 0x130]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x3c]
vmovdqu xmmword [rsp + 0x90], xmm4
xor eax, ebp
xor r14d, ebp
xor esi, ebp
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x120], esi
vmovdqu xmm3, xmmword [rsp + 0x120]
xor eax, ebp
mov dword [rsp + 0xd8], r14d
mov dword [rsp + 0x34], eax
mov dword [rsp + 0xfc], eax
vmovdqu xmmword [rsp + 0x80], xmm3
call sub.msvcrt.dll_memmove
mov eax, esi
lea rcx, [0x14027dbe0]
vmovdqu xmm5, xmmword [rsp + 0x80]
shr eax, 0x10
lea r9, [0x14027dfe0]
vmovdqu xmm1, xmmword [rsp + 0x90]
vmovdqu xmmword [rsp + 0xb0], xmm5
movzx eax, al
mov edx, dword [rsp + 0xb4]
vmovdqu xmmword [rsp + 0xc0], xmm1
mov r12d, dword [rcx + rax*4]
mov eax, esi
movzx eax, ah
mov edi, dword [rbx + rax*4]
movzx eax, sil
shr esi, 0x18
mov r11d, dword [r15 + rax*4]
mov eax, edx
mov r13d, dword [r9 + rsi*4]
mov rsi, r9
shr eax, 0x18
mov r9d, dword [r9 + rax*4]
movzx eax, dh
xor r13d, r11d
mov r8d, dword [rbx + rax*4]
movzx eax, dl
shr edx, 0x10
mov rbx, rcx
mov eax, dword [r15 + rax*4]
movzx edx, dl
mov ebp, r9d
xor r13d, r12d
xor r13d, edi
xor ebp, eax
xor ebp, dword [rcx + rdx*4]
mov edx, dword [rsp + 0xb8]
xor ebp, r8d
mov ecx, edx
shr ecx, 0x18
mov r10d, dword [rsi + rcx*4]
mov ecx, edx
movzx esi, dl
movzx edx, dh
shr ecx, 0x10
mov esi, dword [r15 + rsi*4]
lea r15, [0x14027d7e0]
movzx ecx, cl
xor r9d, r10d
mov ecx, dword [rbx + rcx*4]
xor r10d, esi
xor eax, esi
lea rsi, [0x14027dfe0]
xor eax, r11d
xor r10d, ecx
xor r10d, dword [r15 + rdx*4]
mov r15d, dword [rsp + 0x38]
mov edx, r15d
shr edx, 0x18
mov r11d, dword [rsi + rdx*4]
mov edx, r15d
shr edx, 0x10
movzx edx, dl
xor r9d, r11d
mov edx, dword [rbx + rdx*4]
mov ebx, r15d
lea r15, [0x14027d7e0]
movzx esi, bh
mov esi, dword [r15 + rsi*4]
lea r15, [0x14027d3e0]
xor ecx, edx
xor ecx, r12d
mov r12d, eax
xor r8d, esi
xor r8d, edi
movzx edi, bl
xor r11d, dword [r15 + rdi*4]
mov edi, r8d
xor r11d, edx
mov edx, ebp
xor r11d, esi
mov esi, r10d
xor edx, ecx
shl edi, 8
xor esi, r8d
and edx, 0xff0000
xor edi, r11d
shr r12d, 0x10
and esi, 0xff00
and edi, 0xff00
xor r12d, ebp
or edx, esi
mov esi, eax
movzx r12d, r12b
xor esi, r11d
movzx esi, sil
or edx, esi
mov esi, r13d
xor esi, r9d
and esi, 0xff000000
or edx, esi
mov esi, ecx
shl esi, 8
mov dword [rsp + 0xb0], edx
xor esi, r10d
and esi, 0xff0000
or esi, edi
mov edi, r9d
shl edi, 8
xor edi, ebp
and edi, 0xff000000
or esi, edi
mov edi, eax
shr edi, 0x18
xor edi, r13d
movzx edi, dil
or esi, edi
mov edi, r9d
shl edi, 0x10
mov dword [rsp + 0xb4], esi
xor edi, r10d
and edi, 0xff000000
or edi, r12d
mov r12d, ecx
shl r12d, 0x10
xor r12d, r11d
and r12d, 0xff0000
shl r9d, 0x18
shr eax, 8
or edi, r12d
xor r9d, r11d
mov r12d, r8d
xor eax, r10d
shr ecx, 8
and r9d, 0xff000000
shr r12d, 0x10
xor ecx, r13d
shr r8d, 8
movzx eax, al
xor r12d, r13d
or eax, r9d
and ecx, 0xff0000
xor r8d, ebp
and r12d, 0xff00
or ecx, eax
and r8d, 0xff00
or r12d, edi
or ecx, r8d
sub dword [rsp + 0x64], 1
mov dword [rsp + 0xb8], r12d
mov dword [rsp + 0xbc], ecx
jne 0x1400890f0
mov eax, ecx
mov ecx, dword [rsp + 0xc0]
mov r15d, dword [rsp + 0x60]
mov ebx, dword [rsp + 0x34]
mov r13, qword [rsp + 0x1a8]
xor ecx, edx
bswap esi
mov dword [r13], esi
bswap r12d
mov dword [r13 + 4], r12d
bswap eax
mov dword [r13 + 8], eax
bswap ecx
mov eax, dword [rsp + 0x58]
mov dword [r13 + 0xc], ecx
xor eax, edx
bswap eax
mov dword [r13 + 0x10], eax
mov eax, r15d
bswap eax
mov dword [r13 + 0x14], eax
mov eax, dword [rsp + 0x5c]
bswap eax
mov dword [r13 + 0x18], eax
mov eax, dword [rsp + 0x3c]
bswap eax
mov dword [r13 + 0x1c], eax
xor r14d, edx
bswap r14d
mov dword [r13 + 0x20], r14d
mov eax, dword [rsp + 0x4c]
bswap eax
mov dword [r13 + 0x24], eax
mov eax, dword [rsp + 0x50]
bswap eax
mov dword [r13 + 0x28], eax
mov eax, dword [rsp + 0x54]
bswap eax
xor ebx, edx
mov dword [r13 + 0x2c], eax
mov r15d, ebx
bswap r15d
mov dword [r13 + 0x30], r15d
mov eax, dword [rsp + 0x40]
bswap eax
mov dword [r13 + 0x34], eax
mov eax, dword [rsp + 0x44]
bswap eax
mov dword [r13 + 0x38], eax
mov eax, dword [rsp + 0x48]
bswap eax
mov dword [r13 + 0x3c], eax
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, r8d
mov eax, 0xffffff00
sar eax, cl
mov ecx, eax
and ecx, r10d
cmp edx, 4
je 0x140089e10
mov eax, edx
mov r8d, 0x10
add edx, 1
mov byte [rsp + rax + 0x70], cl
lea rcx, [rsp + 0x70]
sub r8, rax
add rax, rcx
cmp edx, 3
ja 0x140088d8b
mov r10d, edx
mov r9d, 4
add rcx, r10
sub r9d, edx
je 0x140088d8b
xor edx, edx
mov r10d, edx
add edx, 1
mov byte [rcx + r10], 0
cmp edx, r9d
jb 0x140089dfb
jmp 0x140088d8b
mov byte [rsp + 0x70], cl
lea rcx, [rsp + 0x70]
mov r8d, 0x10
mov edx, 1
mov rax, rcx
jmp 0x140089de4
xor r8d, r8d
mov r9, rdx
xor edx, edx
jmp 0x140088d20