Function at 0x4a6790
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 eax, r8d
mov r10d, edx
mov qword [rsp + 0x1a8], r9
mov edx, dword [rcx + 4]
add rax, qword [rcx + 0xa0]
bswap rax
mov qword [rsp + 0x74], rax
mov eax, edx
or eax, r8d
je 0x4a67f0
cmp edx, 3
jbe 0x4a788d
test r8d, r8d
jne 0x4a788d
mov r8d, 0x10
sub r8, rdx
lea r9, [rsp + rdx + 0x70]
jmp 0x4a67fb
lea r9, [rsp + 0x74]
mov r8d, 0xc
mov rdx, r9
call fcn.004a42c0
mov eax, dword [rcx + 8]
mov ebx, 0x24
lea eax, [rax + rax*2]
shl eax, 2
lea rsi, [rax*4]
lea r12, [rcx + 0xc]
sub rbx, rax
lea rax, [rsp + 0xb0]
lea rdx, [r12 + rbx*4]
mov r8, rsi
mov rcx, rax
mov rdi, rax
mov qword [rsp + 0x20], rax
call sub.msvcrt.dll_memcpy
mov r8d, ebx
lea rcx, [rdi + rsi]
mov rdx, r12
shl r8, 2
call sub.msvcrt.dll_memcpy
mov esi, 0x20
lea r12, [rsp + 0xbc]
nop
mov rax, qword [rsp + 0x134]
mov rdx, qword [rsp + 0x20]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x13c]
mov r8d, 0x84
mov rcx, r12
mov dword [rsp + 0x88], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x80]
mov edx, dword [rsp + 0xc8]
mov rdi, rax
shr rdi, 0x20
mov r9, rdi
mov edi, dword [rsp + 0xc0]
mov r10d, dword [rsp + 0x88]
xor eax, edi
xor r10d, edx
xor dword [rsp + 0x100], edx
mov ebx, dword [rsp + 0xf8]
mov edx, eax
mov ecx, dword [rsp + 0xc4]
shr edx, 0x10
xor ebx, edi
lea r14, [0x0074d180]
movzx edx, dl
xor r9d, ecx
xor dword [rsp + 0xfc], ecx
mov dword [rsp + 0xf8], ebx
mov ecx, dword [r14 + rdx*4]
movzx r8d, al
movzx edx, ah
mov r15d, ebx
shr eax, 0x18
lea rbx, [0x0074d580]
mov r13d, dword [rbx + rax*4]
mov eax, r9d
shr eax, 0x18
mov eax, dword [rbx + rax*4]
lea rbp, [0x0074c980]
mov ebx, r9d
movzx r11d, r9b
mov r11d, dword [rbp + r11*4]
mov dword [rsp + 0x28], edi
movzx ebx, bh
lea rdi, [0x0074cd80]
mov edx, dword [rdi + rdx*4]
mov r8d, dword [rbp + r8*4]
mov edi, dword [rdi + rbx*4]
shr r9d, 0x10
mov rbx, rbp
mov ebp, eax
xor ebp, r11d
movzx r9d, r9b
xor ebp, dword [r14 + r9*4]
mov r9d, r10d
xor r13d, r8d
shr r9d, 0x18
xor r8d, r11d
lea r11, [0x0074d580]
mov r11d, dword [r11 + r9*4]
mov r9d, r10d
shr r9d, 0x10
movzx r9d, r9b
mov r14d, dword [r14 + r9*4]
xor r13d, ecx
movzx r9d, r10b
xor r13d, edx
xor ebp, edi
xor edx, edi
mov edi, dword [rbx + r9*4]
mov ebx, r10d
mov r9d, r11d
xor r8d, edi
xor r9d, edi
movzx ebx, bh
mov edi, dword [rsp + 0xbc]
mov r10, rbx
xor r9d, r14d
lea rbx, [0x0074cd80]
xor r9d, dword [rbx + r10*4]
mov r10d, edi
xor eax, r11d
shr r10d, 0x18
lea r11, [0x0074d580]
mov r11d, dword [r11 + r10*4]
mov r10d, edi
shr r10d, 0x10
mov ebx, edi
xor ecx, r14d
movzx ebx, bh
lea r14, [0x0074d180]
movzx r10d, r10b
mov r10d, dword [r14 + r10*4]
mov r14, rbx
lea rbx, [0x0074cd80]
mov r14d, dword [rbx + r14*4]
movzx edi, dil
lea rbx, [0x0074c980]
xor eax, r11d
xor ecx, r10d
xor edx, r14d
xor r11d, dword [rbx + rdi*4]
xor r10d, r11d
mov edi, r13d
mov r11d, ebp
xor edi, eax
xor r11d, ecx
and r11d, 0xff0000
and edi, 0xff000000
xor r10d, r14d
or edi, r11d
mov r11d, r8d
xor r11d, r10d
movzx r11d, r11b
or edi, r11d
mov r11d, r9d
xor r11d, edx
and r11d, 0xff00
or edi, r11d
mov r14d, r8d
mov r11d, eax
shl r11d, 8
shr r14d, 0x18
xor r11d, ebp
xor r14d, r13d
and r11d, 0xff000000
movzx r14d, r14b
or r11d, r14d
mov r14d, ecx
shl r14d, 8
xor r14d, r9d
and r14d, 0xff0000
or r11d, r14d
mov r14d, edx
shl r14d, 8
xor r14d, r10d
and r14d, 0xff00
or r11d, r14d
mov dword [rsp + 0xb4], r11d
mov r11d, eax
shl r11d, 0x10
mov r14d, r8d
xor r11d, r9d
shr r14d, 0x10
and r11d, 0xff000000
xor r14d, ebp
movzx r14d, r14b
or r11d, r14d
mov r14d, ecx
shl r14d, 0x10
xor r14d, r10d
and r14d, 0xff0000
or r11d, r14d
shr r8d, 8
mov r14d, edx
shl eax, 0x18
shr r14d, 0x10
xor r10d, eax
xor r9d, r8d
shr ecx, 8
xor r14d, r13d
and r10d, 0xff000000
movzx r8d, r9b
xor r13d, ecx
shr edx, 8
or r10d, r8d
and r13d, 0xff0000
xor ebp, edx
and r14d, 0xff00
or r13d, r10d
and ebp, 0xff00
or r11d, r14d
or ebp, r13d
mov dword [rsp + 0xb0], edi
mov dword [rsp + 0xb8], r11d
mov dword [rsp + 0xbc], ebp
dec esi
jne 0x4a6860
mov ebx, dword [rsp + 0x28]
lea rax, [rsp + 0xd4]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd0]
mov dword [rsp + 0x68], 0xd
mov qword [rsp + 0x60], rax
mov r11d, ebx
mov edx, edi
jmp 0x4a6b80
mov r11d, dword [rsp + 0xc0]
mov edi, dword [rsp + 0xd4]
xor r11d, edx
xor edi, edx
xor r15d, edx
xor edx, dword [rsp + 0x11c]
mov dword [rsp + 0x11c], edx
mov ebx, edx
vmovdqu xmm1, xmmword [rsp + 0x12c]
vmovdqu xmm0, xmmword [rsp + 0x11c]
mov eax, dword [rsp + 0x13c]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov r8d, 0x6c
vmovdqu xmmword [rsp + 0x80], xmm0
vmovdqu xmmword [rsp + 0x90], xmm1
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0xc0], r11d
mov dword [rsp + 0xd4], edi
mov dword [rsp + 0xf8], r15d
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea r9, [0x0074d180]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
lea r10, [0x0074cd80]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
lea r13, [0x0074c980]
mov dword [rsp + 0xd0], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov esi, dword [r9 + rax*4]
movzx eax, bh
mov r11d, dword [r10 + rax*4]
movzx eax, bl
shr ebx, 0x18
mov edx, ebx
lea r8, [0x0074d580]
mov r14d, dword [r13 + rax*4]
vmovdqu xmm2, xmmword [rsp + 0x80]
mov eax, dword [r8 + rdx*4]
vmovdqu xmmword [rsp + 0xb0], xmm2
xor eax, r14d
mov r12d, eax
mov eax, dword [rsp + 0xb4]
xor r12d, esi
mov edx, eax
shr edx, 0x18
mov r8d, dword [r8 + rdx*4]
movzx edx, ah
mov ecx, dword [r10 + rdx*4]
movzx edx, al
mov ebx, dword [r13 + rdx*4]
shr eax, 0x10
mov ebp, r8d
xor ebp, ebx
movzx eax, al
xor ebp, dword [r9 + rax*4]
mov rdx, r9
mov r9d, dword [rsp + 0xb8]
lea r10, [0x0074d580]
mov eax, r9d
shr eax, 0x18
mov r10d, dword [r10 + rax*4]
mov eax, r9d
shr eax, 0x10
movzx eax, al
mov eax, dword [rdx + rax*4]
movzx edx, r9b
mov dword [rsp + 0x34], eax
mov edx, dword [r13 + rdx*4]
mov eax, r9d
xor r8d, r10d
movzx eax, ah
xor r10d, edx
xor edx, ebx
mov ebx, dword [rsp + 0xbc]
mov r9, rax
xor r10d, dword [rsp + 0x34]
lea rax, [0x0074cd80]
xor r10d, dword [rax + r9*4]
mov r9d, ebx
xor edx, r14d
shr r9d, 0x18
lea r14, [0x0074d580]
mov r9d, dword [r14 + r9*4]
mov r14d, ebx
shr r14d, 0x10
mov r13, rax
movzx r14d, r14b
lea rax, [0x0074d180]
mov r14d, dword [rax + r14*4]
mov eax, dword [rsp + 0x34]
xor r8d, r9d
xor eax, r14d
xor eax, esi
movzx esi, bh
mov esi, dword [r13 + rsi*4]
movzx ebx, bl
lea r13, [0x0074c980]
xor r9d, dword [r13 + rbx*4]
xor ebp, ecx
xor r9d, r14d
xor ecx, esi
xor r12d, r11d
xor ecx, r11d
xor r9d, esi
mov r11d, r9d
mov ebx, r10d
mov r9d, ebp
xor r9d, eax
xor ebx, ecx
and ebx, 0xff00
and r9d, 0xff0000
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 esi, ecx
mov ebx, eax
shl ebx, 8
shl esi, 8
xor ebx, r10d
xor esi, r11d
and esi, 0xff00
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 + 0xb0], r9d
mov dword [rsp + 0x34], ebx
mov dword [rsp + 0xb4], ebx
mov ebx, edx
shr ebx, 0x10
mov esi, r8d
shl esi, 0x10
mov r14d, ebx
xor esi, r10d
xor r14d, ebp
mov ebx, eax
shl ebx, 0x10
and esi, 0xff000000
movzx r14d, r14b
or esi, r14d
mov r14d, ebx
xor r14d, r11d
mov ebx, ecx
and r14d, 0xff0000
shr ebx, 0x10
shl r8d, 0x18
shr edx, 8
xor r8d, r11d
xor edx, r10d
or esi, r14d
shr eax, 8
mov r14d, ebx
xor r14d, r12d
and r8d, 0xff000000
xor eax, r12d
movzx edx, dl
and r14d, 0xff00
or edx, r8d
and eax, 0xff0000
shr ecx, 8
or esi, r14d
or edx, eax
xor ebp, ecx
and ebp, 0xff00
mov dword [rsp + 0x40], esi
mov dword [rsp + 0xb8], esi
mov esi, edx
or esi, ebp
xor r15d, r9d
mov dword [rsp + 0x44], esi
mov dword [rsp + 0xbc], esi
mov esi, dword [rsp + 0x3c]
mov dword [rsp + 0x11c], r15d
xor esi, r9d
mov dword [rsp + 0x48], esi
mov dword [rsp + 0xc0], esi
mov esi, dword [rsp + 0xd8]
vmovdqu xmm3, xmmword [rsp + 0x11c]
vmovdqu xmm4, xmmword [rsp + 0x12c]
mov eax, dword [rsp + 0x13c]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
xor esi, r9d
xor edi, r9d
mov r8d, 0x6c
vmovdqu xmmword [rsp + 0x80], xmm3
vmovdqu xmmword [rsp + 0x90], xmm4
mov dword [rsp + 0xd8], esi
mov dword [rsp + 0xf8], edi
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
mov ebx, r15d
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
shr ebx, 0x10
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
lea r10, [0x0074d180]
mov dword [rsp + 0xd0], eax
movzx eax, bl
mov r14d, dword [r10 + rax*4]
vmovdqu xmm5, xmmword [rsp + 0x80]
mov eax, r15d
lea r12, [0x0074cd80]
movzx eax, ah
vmovdqu xmmword [rsp + 0xb0], xmm5
mov r11d, dword [r12 + rax*4]
movzx eax, r15b
mov ebp, r15d
mov r15d, dword [r13 + rax*4]
mov eax, dword [rsp + 0xb4]
mov r9d, ebp
shr r9d, 0x18
mov edx, eax
mov ebp, r9d
shr edx, 0x18
lea r8, [0x0074d580]
mov rbx, r13
mov r13d, dword [r8 + rbp*4]
mov r8d, dword [r8 + rdx*4]
movzx edx, ah
mov ecx, dword [r12 + rdx*4]
movzx edx, al
mov ebp, dword [rbx + rdx*4]
xor r13d, r15d
xor r13d, r14d
mov edx, r8d
mov r9d, dword [rsp + 0xb8]
xor r13d, r11d
shr eax, 0x10
xor edx, ebp
movzx eax, al
mov r12d, edx
xor r12d, dword [r10 + rax*4]
mov eax, r9d
mov rbx, r10
shr eax, 0x18
lea r10, [0x0074d580]
mov r10d, dword [r10 + rax*4]
mov eax, r9d
shr eax, 0x10
movzx eax, al
mov eax, dword [rbx + rax*4]
movzx edx, r9b
lea rbx, [0x0074c980]
mov edx, dword [rbx + rdx*4]
mov ebx, r9d
xor r8d, r10d
movzx ebx, bh
xor r10d, edx
xor edx, ebp
mov ebp, dword [rsp + 0xbc]
mov r9, rbx
xor r10d, eax
lea rbx, [0x0074cd80]
xor r10d, dword [rbx + r9*4]
mov r9d, ebp
xor edx, r15d
shr r9d, 0x18
lea r15, [0x0074d580]
mov r9d, dword [r15 + r9*4]
mov r15d, ebp
shr r15d, 0x10
lea rbx, [0x0074d180]
movzx r15d, r15b
mov r15d, dword [rbx + r15*4]
mov ebx, ebp
xor eax, r15d
movzx ebx, bh
xor eax, r14d
mov r14, rbx
lea rbx, [0x0074cd80]
mov r14d, dword [rbx + r14*4]
xor r12d, ecx
xor ecx, r14d
xor ecx, r11d
movzx ebp, bpl
lea r11, [0x0074c980]
xor r8d, r9d
xor r9d, dword [r11 + rbp*4]
xor r9d, r15d
mov ebp, r9d
xor ebp, r14d
mov r14d, r12d
mov r11d, ebp
xor r14d, eax
mov ebp, r10d
xor ebp, ecx
mov r9d, r14d
and ebp, 0xff00
and r9d, 0xff0000
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 r15d, eax
mov ebp, ecx
shl r15d, 8
shl ebp, 8
xor r15d, r10d
xor ebp, r11d
and ebp, 0xff00
and r15d, 0xff0000
or r15d, ebp
mov ebp, r8d
shl ebp, 8
xor ebp, r12d
and ebp, 0xff000000
or r15d, ebp
mov ebp, edx
shr ebp, 0x18
xor ebp, r13d
movzx ebp, bpl
or r15d, ebp
mov r14d, edx
mov ebp, r8d
shl ebp, 0x10
shr r14d, 0x10
xor ebp, r10d
xor r14d, r12d
and ebp, 0xff000000
movzx r14d, r14b
or ebp, r14d
mov r14d, eax
shl r14d, 0x10
xor r14d, r11d
and r14d, 0xff0000
or ebp, r14d
mov r14d, ecx
shr r14d, 0x10
xor r14d, r13d
shl r8d, 0x18
xor r8d, r11d
and r14d, 0xff00
shr edx, 8
or ebp, r14d
and r8d, 0xff000000
xor edx, r10d
shr eax, 8
xor eax, r13d
movzx edx, dl
or edx, r8d
and eax, 0xff0000
shr ecx, 8
or edx, eax
xor ecx, r12d
and ecx, 0xff00
mov eax, edx
or eax, ecx
mov dword [rsp + 0xb0], r9d
mov dword [rsp + 0xb4], r15d
mov dword [rsp + 0x4c], ebp
mov dword [rsp + 0xb8], ebp
mov dword [rsp + 0x50], eax
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x3c]
xor edi, r9d
xor eax, r9d
mov dword [rsp + 0x11c], edi
mov dword [rsp + 0x54], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x34]
vmovdqu xmm0, xmmword [rsp + 0x11c]
xor eax, r9d
vmovdqu xmm1, xmmword [rsp + 0x12c]
mov dword [rsp + 0x34], eax
mov dword [rsp + 0xd8], eax
mov rdx, qword [rsp + 0x20]
mov eax, dword [rsp + 0x13c]
mov rcx, qword [rsp + 0x28]
xor esi, r9d
mov r8d, 0x6c
vmovdqu xmmword [rsp + 0x80], xmm0
mov dword [rsp + 0xfc], esi
vmovdqu xmmword [rsp + 0x90], xmm1
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea r9, [0x0074d180]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
vmovdqu xmm2, xmmword [rsp + 0x80]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
lea r11, [0x0074c980]
mov dword [rsp + 0xd0], eax
mov eax, edi
shr eax, 0x10
movzx eax, al
mov r12d, dword [r9 + rax*4]
mov eax, edi
movzx eax, ah
mov r14d, dword [rbx + rax*4]
lea rcx, [0x0074d580]
movzx eax, dil
shr edi, 0x18
vmovdqu xmmword [rsp + 0xb0], xmm2
mov r13d, dword [r11 + rax*4]
mov r8d, dword [rcx + rdi*4]
mov eax, dword [rsp + 0xb4]
xor r8d, r13d
mov edi, r8d
mov r8d, eax
shr r8d, 0x18
mov edx, r8d
mov r8d, dword [rcx + rdx*4]
movzx edx, ah
mov ecx, dword [rbx + rdx*4]
movzx edx, al
mov ebp, dword [r11 + rdx*4]
mov r10d, r8d
xor r10d, ebp
shr eax, 0x10
mov r11d, r10d
mov r10d, dword [rsp + 0xb8]
movzx eax, al
xor r11d, dword [r9 + rax*4]
mov eax, r10d
mov rbx, r9
shr eax, 0x18
lea r9, [0x0074d580]
mov r9d, dword [r9 + rax*4]
mov eax, r10d
shr eax, 0x10
movzx eax, al
mov eax, dword [rbx + rax*4]
movzx edx, r10b
lea rbx, [0x0074c980]
mov edx, dword [rbx + rdx*4]
mov ebx, r10d
xor r8d, r9d
movzx ebx, bh
xor r9d, edx
xor edx, ebp
mov ebp, dword [rsp + 0xbc]
mov r10, rbx
xor r9d, eax
lea rbx, [0x0074cd80]
xor r9d, dword [rbx + r10*4]
xor edi, r12d
mov r10d, ebp
xor r11d, ecx
xor edi, r14d
xor edx, r13d
shr r10d, 0x18
lea r13, [0x0074d580]
mov r10d, dword [r13 + r10*4]
mov r13d, ebp
shr r13d, 0x10
lea rbx, [0x0074d180]
movzx r13d, r13b
mov r13d, dword [rbx + r13*4]
mov ebx, ebp
xor eax, r13d
movzx ebx, bh
xor eax, r12d
mov r12, rbx
lea rbx, [0x0074cd80]
mov r12d, dword [rbx + r12*4]
movzx ebp, bpl
xor ecx, r12d
xor ecx, r14d
lea r14, [0x0074c980]
xor r8d, r10d
xor r10d, dword [r14 + rbp*4]
xor r10d, r13d
xor r12d, r10d
mov ebp, r11d
mov r10d, r9d
xor ebp, eax
xor r10d, ecx
and r10d, 0xff00
and ebp, 0xff0000
or ebp, r10d
mov r10d, edx
xor r10d, r12d
movzx r10d, r10b
or ebp, r10d
mov r10d, edi
xor r10d, r8d
and r10d, 0xff000000
or ebp, r10d
mov r10d, eax
shl r10d, 8
xor r10d, r9d
mov r14d, r10d
mov r10d, ecx
shl r10d, 8
xor r10d, r12d
mov r13d, r10d
and r13d, 0xff00
and r14d, 0xff0000
or r14d, r13d
mov r13d, r8d
shl r13d, 8
xor r13d, r11d
and r13d, 0xff000000
mov r10d, r14d
or r10d, r13d
mov r13d, edx
shr r13d, 0x18
xor r13d, edi
movzx r13d, r13b
or r10d, r13d
mov dword [rsp + 0x58], r10d
mov dword [rsp + 0xb4], r10d
mov r13d, edx
mov r10d, r8d
shl r10d, 0x10
shr r13d, 0x10
xor r10d, r9d
xor r13d, r11d
and r10d, 0xff000000
movzx r13d, r13b
or r10d, r13d
mov r13d, eax
shl r13d, 0x10
xor r13d, r12d
and r13d, 0xff0000
or r10d, r13d
mov r13d, ecx
shr r13d, 0x10
shl r8d, 0x18
shr edx, 8
xor edx, r9d
xor r13d, edi
xor r8d, r12d
shr eax, 8
shr ecx, 8
xor ecx, r11d
and r13d, 0xff00
movzx r14d, dl
xor eax, edi
and r8d, 0xff000000
or r10d, r13d
or r8d, r14d
and eax, 0xff0000
mov edi, ecx
or r8d, eax
mov dword [rsp + 0x5c], r10d
and edi, 0xff00
mov dword [rsp + 0xb0], ebp
mov dword [rsp + 0xb8], r10d
mov eax, dword [rsp + 0x3c]
mov r14d, edi
xor eax, ebp
or r14d, r8d
xor r15d, ebp
xor esi, ebp
mov dword [rsp + 0x120], esi
mov dword [rsp + 0x3c], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x34]
vmovdqu xmm3, xmmword [rsp + 0x120]
vmovdqu xmm4, xmmword [rsp + 0x130]
mov rdx, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x60]
xor eax, ebp
mov r8d, 0x70
mov dword [rsp + 0xbc], r14d
mov dword [rsp + 0xd8], r15d
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0xfc], eax
vmovdqu xmmword [rsp + 0x80], xmm3
vmovdqu xmmword [rsp + 0x90], xmm4
call sub.msvcrt.dll_memmove
mov eax, esi
vmovdqu xmm5, xmmword [rsp + 0x80]
shr eax, 0x10
lea r8, [0x0074d180]
movzx eax, al
vmovdqu xmmword [rsp + 0xb0], xmm5
mov edi, dword [r8 + rax*4]
mov eax, esi
mov edx, dword [rsp + 0xb4]
movzx eax, ah
mov r11d, dword [rbx + rax*4]
lea r10, [0x0074c980]
movzx eax, sil
mov r12d, dword [r10 + rax*4]
mov eax, edx
lea rcx, [0x0074d580]
shr esi, 0x18
shr eax, 0x18
mov r9d, dword [rcx + rax*4]
mov r13d, dword [rcx + rsi*4]
mov rsi, rcx
movzx ecx, dl
mov ecx, dword [r10 + rcx*4]
movzx eax, dh
mov ebp, r9d
shr edx, 0x10
xor ebp, ecx
movzx edx, dl
xor ebp, dword [r8 + rdx*4]
mov edx, dword [rsp + 0xb8]
mov eax, dword [rbx + rax*4]
mov rbx, r8
mov r8d, edx
shr r8d, 0x18
mov dword [rsp + 0x34], eax
mov esi, dword [rsi + r8*4]
mov rax, r10
mov r8d, edx
movzx r10d, dl
mov r10d, dword [rax + r10*4]
shr r8d, 0x10
movzx r8d, r8b
mov r8d, dword [rbx + r8*4]
xor r9d, esi
xor esi, r10d
xor r10d, ecx
xor r10d, r12d
xor r13d, r12d
mov r12d, dword [rsp + 0x38]
xor esi, r8d
lea rax, [0x0074cd80]
movzx edx, dh
xor esi, dword [rax + rdx*4]
mov edx, r12d
shr edx, 0x18
lea rcx, [0x0074d580]
mov edx, dword [rcx + rdx*4]
mov ecx, r12d
shr ecx, 0x10
movzx ecx, cl
mov ecx, dword [rbx + rcx*4]
mov ebx, r12d
xor r8d, ecx
xor r8d, edi
xor r13d, edi
movzx edi, bh
mov r12d, dword [rax + rdi*4]
mov eax, dword [rsp + 0x34]
xor r13d, r11d
xor eax, r12d
xor eax, r11d
lea rdi, [0x0074c980]
movzx r11d, bl
xor r9d, edx
xor edx, dword [rdi + r11*4]
xor ebp, dword [rsp + 0x34]
xor edx, ecx
mov edi, edx
mov ecx, esi
mov edx, ebp
xor edi, r12d
xor edx, r8d
xor ecx, eax
and ecx, 0xff00
and edx, 0xff0000
or edx, ecx
mov ecx, r10d
xor ecx, edi
movzx ecx, cl
or edx, ecx
mov ecx, r13d
xor ecx, r9d
and ecx, 0xff000000
or edx, ecx
mov r11d, r8d
mov ecx, eax
shl r11d, 8
shl ecx, 8
xor r11d, esi
xor ecx, edi
and ecx, 0xff00
and r11d, 0xff0000
or r11d, ecx
mov ecx, r9d
shl ecx, 8
xor ecx, ebp
and ecx, 0xff000000
or r11d, ecx
mov ecx, r10d
shr ecx, 0x18
xor ecx, r13d
movzx ecx, cl
or r11d, ecx
mov r12d, r10d
mov ecx, r9d
shl ecx, 0x10
shr r12d, 0x10
xor r12d, ebp
xor ecx, esi
and ecx, 0xff000000
movzx r12d, r12b
or ecx, r12d
mov r12d, r8d
shl r12d, 0x10
xor r12d, edi
and r12d, 0xff0000
shl r9d, 0x18
shr r10d, 8
or ecx, r12d
xor r9d, edi
mov r12d, eax
xor r10d, esi
shr r8d, 8
shr r12d, 0x10
and r9d, 0xff000000
xor r8d, r13d
shr eax, 8
movzx r10d, r10b
xor r12d, r13d
or r10d, r9d
and r8d, 0xff0000
xor ebp, eax
vmovdqu xmm0, xmmword [rsp + 0x90]
and r12d, 0xff00
or r10d, r8d
and ebp, 0xff00
or ecx, r12d
or r10d, ebp
mov dword [rsp + 0xb0], edx
mov dword [rsp + 0xb4], r11d
mov dword [rsp + 0xb8], ecx
mov dword [rsp + 0xbc], r10d
vmovdqu xmmword [rsp + 0xc0], xmm0
dec dword [rsp + 0x68]
jne 0x4a6b78
mov eax, dword [rsp + 0xc0]
mov edi, edx
mov ebx, r11d
mov edx, dword [rsp + 0x6c]
mov r12d, r10d
xor eax, edi
bswap ebx
mov rsi, qword [rsp + 0x1a8]
mov dword [rsi], ebx
bswap ecx
mov dword [rsi + 4], ecx
bswap r12d
mov dword [rsi + 8], r12d
bswap eax
mov r13d, dword [rsp + 0x58]
mov dword [rsi + 0xc], eax
xor r13d, edi
bswap r13d
mov dword [rsi + 0x10], r13d
mov ecx, dword [rsp + 0x5c]
bswap ecx
mov dword [rsi + 0x14], ecx
mov eax, r14d
bswap eax
mov dword [rsi + 0x18], eax
mov r14d, dword [rsp + 0x3c]
bswap r14d
xor r15d, edi
mov dword [rsi + 0x1c], r14d
mov r12d, r15d
bswap r12d
mov dword [rsi + 0x20], r12d
mov r9d, dword [rsp + 0x4c]
bswap r9d
mov dword [rsi + 0x24], r9d
mov eax, dword [rsp + 0x50]
bswap eax
mov dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x54]
bswap eax
mov dword [rsi + 0x2c], eax
xor edi, edx
bswap edi
mov dword [rsi + 0x30], edi
mov rax, rsi
mov esi, dword [rsp + 0x40]
bswap esi
mov dword [rax + 0x34], esi
mov edx, dword [rsp + 0x44]
bswap edx
mov dword [rax + 0x38], edx
mov eax, dword [rsp + 0x48]
bswap eax
mov rsi, qword [rsp + 0x1a8]
mov dword [rsi + 0x3c], eax
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0xff
shrx r8d, eax, r8d
andn r10d, r8d, r10d
cmp edx, 4
je 0x4a78e8
mov eax, edx
mov byte [rsp + rax + 0x70], r10b
mov r8d, 0x10
lea r10d, [rdx + 1]
sub r8, rax
lea r9, [rsp + rax + 0x70]
cmp r10d, 3
ja 0x4a67fb
mov byte [rsp + r10 + 0x70], 0
lea eax, [rdx + 2]
cmp edx, 2
je 0x4a67fb
mov byte [rsp + rax + 0x70], 0
lea eax, [rdx + 3]
cmp edx, 1
jne 0x4a7904
jmp 0x4a67fb
mov byte [rsp + 0x70], r10b
xor eax, eax
mov word [rsp + 0x71], ax
lea r9, [rsp + 0x70]
mov r8d, 0x10
mov eax, 3
mov edx, eax
mov byte [rsp + rdx + 0x70], 0
cmp eax, 2
jne 0x4a67fb
mov byte [rsp + 0x73], 0
jmp 0x4a67fb
xor r8d, r8d
mov r9, rdx
xor edx, edx
jmp 0x4a6790