Function at 0x497000
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]
add rax, qword [rcx + 0xa0]
mov qword [rsp + 0x1a8], r9
bswap rax
mov qword [rsp + 0x74], rax
mov eax, edx
or eax, r8d
je 0x494020
cmp edx, 3
jbe 0x4950c1
test r8d, r8d
jne 0x4950c1
mov r8d, 0x10
lea r9, [rsp + rdx + 0x70]
sub r8, rdx
jmp 0x49402b
lea r9, [rsp + 0x74]
mov r8d, 0xc
mov rdx, r9
mov ebx, 0x24
lea r12, [rcx + 0xc]
call fcn.004919f0
mov eax, dword [rcx + 8]
lea eax, [rax + rax*2]
shl eax, 2
lea rsi, [rax*4]
sub rbx, rax
lea rax, [rsp + 0xb0]
lea rdx, [rcx + rbx*4 + 0xc]
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
mov esi, 0x20
call sub.msvcrt.dll_memcpy
lea r12, [rsp + 0xbc]
mov rax, qword [rsp + 0x134]
mov rdx, qword [rsp + 0x20]
mov r8d, 0x84
mov rcx, r12
lea r15, [0x006cd100]
lea r13, [0x006ccd00]
lea rbp, [0x006cc900]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x13c]
mov dword [rsp + 0x88], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x80]
vmovq xmm0, qword [rsp + 0xf8]
mov edx, dword [rsp + 0xc8]
vmovq xmm1, qword [rsp + 0xc0]
vpxor xmm0, xmm0, xmm1
mov r11d, dword [rsp + 0x88]
mov ebx, dword [rsp + 0xf8]
vmovq qword [rsp + 0xf8], xmm0
xor dword [rsp + 0x100], edx
mov rcx, rax
shr rcx, 0x20
mov r10, rcx
mov ecx, dword [rsp + 0xc0]
xor r11d, edx
xor r10d, dword [rsp + 0xc4]
xor eax, ecx
xor ebx, ecx
mov dword [rsp + 0x30], ecx
mov edx, eax
mov dword [rsp + 0x2c], ebx
movzx ecx, ah
lea rbx, [0x006cd500]
shr edx, 0x10
movzx r8d, al
shr eax, 0x18
mov ecx, dword [r13 + rcx*4]
movzx edx, dl
mov r8d, dword [rbp + r8*4]
mov r14d, dword [rbx + rax*4]
movzx edi, r10b
mov edx, dword [r15 + rdx*4]
mov edi, dword [rbp + rdi*4]
xor r14d, r8d
mov eax, edx
xor r8d, edi
xor eax, ecx
xor r14d, eax
mov eax, r10d
shr eax, 0x18
mov eax, dword [rbx + rax*4]
mov ebx, r10d
shr r10d, 0x10
movzx ebx, bh
movzx r10d, r10b
mov r9d, dword [r13 + rbx*4]
mov rbx, rbp
movzx ebp, r11b
mov ebp, dword [rbx + rbp*4]
mov ebx, r11d
movzx ebx, bh
xor ecx, r9d
xor r9d, dword [r15 + r10*4]
mov r10d, eax
xor r10d, edi
lea rdi, [0x006cd500]
xor r8d, ebp
xor r9d, r10d
mov r10d, r11d
shr r10d, 0x18
mov edi, dword [rdi + r10*4]
mov r10d, r11d
shr r10d, 0x10
movzx r10d, r10b
mov r10d, dword [r15 + r10*4]
xor eax, edi
xor edi, ebp
lea rbp, [0x006cd500]
xor edx, r10d
xor r10d, dword [r13 + rbx*4]
xor r10d, edi
mov edi, dword [rsp + 0xbc]
mov r11d, edi
mov ebx, edi
shr r11d, 0x18
movzx ebx, bh
mov r11d, dword [rbp + r11*4]
mov ebp, edi
mov r13, rbx
lea rbx, [0x006ccd00]
shr ebp, 0x10
mov r13d, dword [rbx + r13*4]
movzx edi, dil
lea rbx, [0x006cc900]
movzx ebp, bpl
mov ebp, dword [r15 + rbp*4]
xor eax, r11d
xor ecx, r13d
mov r15d, ecx
xor edx, ebp
xor r11d, dword [rbx + rdi*4]
xor ebp, r13d
mov edi, r9d
xor edi, edx
mov r13d, r8d
shl r15d, 8
and edi, 0xff0000
xor r11d, ebp
mov ebp, r14d
xor ebp, eax
xor r13d, r11d
xor r15d, r11d
and ebp, 0xff000000
movzx r13d, r13b
and r15d, 0xff00
or ebp, edi
mov edi, r10d
xor edi, ecx
and edi, 0xff00
or edi, r13d
mov r13d, r8d
or ebp, edi
mov edi, eax
shr r13d, 0x18
shl edi, 8
xor r13d, r14d
mov dword [rsp + 0xb0], ebp
xor edi, r9d
movzx r13d, r13b
and edi, 0xff000000
or edi, r13d
mov r13d, edx
shl r13d, 8
xor r13d, r10d
and r13d, 0xff0000
or r13d, r15d
mov r15d, ecx
or r13d, edi
mov edi, eax
mov dword [rsp + 0xb4], r13d
mov r13d, r8d
shl edi, 0x10
shr r13d, 0x10
xor edi, r10d
xor r13d, r9d
and edi, 0xff000000
movzx r13d, r13b
or edi, r13d
mov r13d, edx
shr r8d, 8
shr r15d, 0x10
shl r13d, 0x10
shl eax, 0x18
shr edx, 8
shr ecx, 8
xor r13d, r11d
xor r15d, r14d
xor r11d, eax
xor r10d, r8d
xor r14d, edx
xor r9d, ecx
and r13d, 0xff0000
and r15d, 0xff00
and r11d, 0xff000000
and r14d, 0xff0000
and r9d, 0xff00
movzx r8d, r10b
or r13d, r15d
or r11d, r8d
or r14d, r9d
or r13d, edi
or r11d, r14d
dec esi
mov dword [rsp + 0xb8], r13d
mov dword [rsp + 0xbc], r11d
jne 0x494090
mov ebx, dword [rsp + 0x30]
lea rax, [rsp + 0xd4]
mov dword [rsp + 0x64], 0xd
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x68], rax
mov eax, ebp
mov r10d, ebx
jmp 0x4943a8
mov r10d, dword [rsp + 0xc0]
mov esi, dword [rsp + 0xd4]
mov ebx, dword [rsp + 0x2c]
xor r10d, eax
mov r8d, 0x6c
vmovdqu xmm3, xmmword [rsp + 0x12c]
mov rdx, qword [rsp + 0x20]
mov dword [rsp + 0x38], r10d
mov dword [rsp + 0xc0], r10d
lea r13, [0x006cc900]
mov rcx, qword [rsp + 0x30]
mov r15, r13
xor ebx, eax
xor esi, eax
xor eax, dword [rsp + 0x11c]
mov dword [rsp + 0xd4], esi
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0xf8], ebx
lea rbx, [0x006cd500]
mov dword [rsp + 0x11c], eax
vmovdqu xmm2, xmmword [rsp + 0x11c]
mov ebp, eax
mov eax, dword [rsp + 0x13c]
vmovdqu xmmword [rsp + 0x90], xmm3
mov dword [rsp + 0xa0], eax
vmovdqu xmmword [rsp + 0x80], xmm2
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea r11, [0x006cd100]
lea r9, [0x006ccd00]
vmovdqu xmm4, xmmword [rsp + 0x80]
mov dword [rsp + 0x44], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
vmovdqu xmmword [rsp + 0xb0], xmm4
mov dword [rsp + 0xd0], eax
mov eax, ebp
shr eax, 0x10
movzx eax, al
mov edi, dword [r11 + rax*4]
mov eax, ebp
movzx eax, ah
mov r14d, dword [r9 + rax*4]
movzx eax, bpl
mov r10d, dword [r13 + rax*4]
mov eax, ebp
shr eax, 0x18
mov r12d, dword [rbx + rax*4]
mov eax, edi
xor eax, r14d
xor r12d, r10d
xor r12d, eax
mov eax, dword [rsp + 0xb4]
mov edx, eax
shr edx, 0x18
mov r8d, dword [rbx + rdx*4]
movzx edx, ah
mov ecx, dword [r9 + rdx*4]
movzx edx, al
shr eax, 0x10
movzx eax, al
mov r13d, dword [r13 + rdx*4]
mov edx, dword [rsp + 0xb8]
mov ebp, dword [r11 + rax*4]
mov eax, r8d
xor eax, r13d
mov dword [rsp + 0x2c], r13d
xor ebp, ecx
xor ebp, eax
mov eax, edx
shr eax, 0x18
mov r13d, dword [rbx + rax*4]
mov eax, edx
mov rbx, r11
shr eax, 0x10
movzx eax, al
mov eax, dword [r11 + rax*4]
movzx r11d, dl
movzx edx, dh
mov r11d, dword [r15 + r11*4]
mov r15, r9
mov r9d, dword [r9 + rdx*4]
xor r8d, r13d
xor r9d, eax
xor r13d, r11d
xor r13d, r9d
mov r9d, dword [rsp + 0x2c]
xor r9d, r11d
lea r11, [0x006cd500]
mov edx, r9d
mov r9d, dword [rsp + 0xbc]
xor edx, r10d
mov r10d, r9d
shr r10d, 0x18
mov r10d, dword [r11 + r10*4]
mov r11d, r9d
shr r11d, 0x10
movzx r11d, r11b
mov r11d, dword [rbx + r11*4]
mov ebx, r9d
movzx r9d, r9b
xor r8d, r10d
xor eax, r11d
xor eax, edi
movzx edi, bh
mov edi, dword [r15 + rdi*4]
lea r15, [0x006cc900]
xor r10d, dword [r15 + r9*4]
mov r9d, ebp
xor ecx, edi
xor r11d, edi
mov edi, r13d
xor ecx, r14d
xor r10d, r11d
xor edi, ecx
xor r9d, eax
mov r11d, edi
mov edi, r12d
and r9d, 0xff0000
xor edi, r8d
and r11d, 0xff00
or r9d, r11d
mov r11d, edi
mov edi, edx
xor edi, r10d
and r11d, 0xff000000
movzx edi, dil
or r11d, edi
mov edi, eax
shl edi, 8
or r9d, r11d
xor edi, r13d
mov dword [rsp + 0xb0], r9d
and edi, 0xff0000
mov r14d, edi
mov edi, ecx
shl edi, 8
xor edi, r10d
and edi, 0xff00
mov r11d, edi
mov edi, r14d
mov r14d, r8d
shl r14d, 8
or edi, r11d
mov r11d, r14d
mov r14d, edx
shr r14d, 0x18
xor r11d, ebp
xor r14d, r12d
and r11d, 0xff000000
movzx r14d, r14b
or r11d, r14d
mov r14d, r8d
or edi, r11d
shl r14d, 0x10
mov dword [rsp + 0x40], edi
mov dword [rsp + 0xb4], edi
mov edi, r14d
mov r14d, edx
shr r14d, 0x10
xor edi, r13d
mov r11d, r14d
mov r14d, eax
and edi, 0xff000000
mov ebx, dword [rsp + 0x3c]
xor r11d, ebp
shl r14d, 0x10
vmovdqu xmm2, xmmword [rsp + 0x12c]
movzx r11d, r11b
or edi, r11d
mov r11d, r14d
mov r14d, ecx
xor r11d, r10d
shr r14d, 0x10
shl r8d, 0x18
shr edx, 8
xor r14d, r12d
xor r8d, r10d
xor edx, r13d
shr ecx, 8
and r14d, 0xff00
and r11d, 0xff0000
shr eax, 8
xor ebp, ecx
or r11d, r14d
xor eax, r12d
mov r14d, edi
and r8d, 0xff000000
movzx edx, dl
or r14d, r11d
and ebp, 0xff00
and eax, 0xff0000
or r8d, edx
or eax, ebp
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0xb8], r14d
mov r14d, r8d
xor ebx, r9d
xor esi, r9d
mov r8d, 0x6c
or r14d, eax
mov eax, dword [rsp + 0x44]
mov dword [rsp + 0x11c], ebx
vmovdqu xmm5, xmmword [rsp + 0x11c]
mov rdx, qword [rsp + 0x20]
vmovdqu xmmword [rsp + 0x90], xmm2
mov dword [rsp + 0x4c], r14d
lea r13, [0x006ccd00]
mov dword [rsp + 0xbc], r14d
mov dword [rsp + 0x44], esi
mov dword [rsp + 0xf8], esi
lea rsi, [0x006cd100]
xor eax, r9d
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0xd8]
vmovdqu xmmword [rsp + 0x80], xmm5
xor eax, r9d
mov edi, 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 r8, [0x006cd500]
vmovdqu xmm3, xmmword [rsp + 0x80]
mov dword [rsp + 0x3c], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
vmovdqu xmmword [rsp + 0xb0], xmm3
mov dword [rsp + 0xd0], eax
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov r11d, dword [rsi + rax*4]
movzx eax, bh
mov r14d, dword [r13 + rax*4]
movzx eax, bl
shr ebx, 0x18
mov r10d, dword [r15 + rax*4]
mov r12d, dword [r8 + rbx*4]
mov eax, r11d
xor eax, r14d
xor r12d, r10d
xor r12d, eax
mov eax, dword [rsp + 0xb4]
mov edx, eax
shr edx, 0x18
mov r8d, dword [r8 + rdx*4]
movzx edx, ah
mov ecx, dword [r13 + rdx*4]
movzx edx, al
shr eax, 0x10
movzx eax, al
mov r9d, dword [r15 + rdx*4]
lea rdx, [0x006cd500]
mov ebx, dword [rsi + rax*4]
mov eax, r8d
xor eax, r9d
xor ebx, ecx
mov ebp, ebx
mov ebx, dword [rsp + 0xb8]
xor ebp, eax
mov eax, ebx
shr eax, 0x18
mov eax, dword [rdx + rax*4]
movzx edx, bl
mov edx, dword [r15 + rdx*4]
mov dword [rsp + 0x2c], eax
xor r8d, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
mov r15d, dword [r13 + rbx*4]
movzx eax, al
mov ebx, dword [rsp + 0xbc]
mov eax, dword [rsi + rax*4]
xor r15d, eax
mov r13d, r15d
mov r15d, dword [rsp + 0x2c]
xor r15d, edx
xor edx, r9d
mov r9d, ebx
xor edx, r10d
shr r9d, 0x18
lea r10, [0x006cd500]
xor r13d, r15d
mov r10d, dword [r10 + r9*4]
mov r9d, ebx
lea r15, [0x006ccd00]
shr r9d, 0x10
movzx r9d, r9b
mov r9d, dword [rsi + r9*4]
movzx esi, bh
movzx ebx, bl
xor r8d, r10d
xor eax, r9d
xor eax, r11d
mov r11d, dword [r15 + rsi*4]
xor ecx, r11d
xor r9d, r11d
mov r11d, r13d
xor ecx, r14d
lea r14, [0x006cc900]
xor r10d, dword [r14 + rbx*4]
mov ebx, ebp
xor r11d, ecx
mov r14d, edx
xor ebx, eax
and r11d, 0xff00
xor r10d, r9d
mov r9d, ebx
mov ebx, edx
and r9d, 0xff0000
xor ebx, r10d
or r9d, r11d
mov r11d, r12d
movzx ebx, bl
xor r11d, r8d
and r11d, 0xff000000
or r11d, ebx
mov ebx, eax
or r9d, r11d
shl ebx, 8
shr r14d, 0x18
mov r15d, ebx
mov ebx, ecx
mov dword [rsp + 0xb0], r9d
shl ebx, 8
xor r15d, r13d
xor ebx, r10d
and r15d, 0xff0000
and ebx, 0xff00
mov r11d, ebx
mov ebx, r15d
mov r15d, r14d
mov r14d, ecx
or ebx, r11d
mov r11d, r8d
xor r15d, r12d
shr r14d, 0x10
shl r11d, 8
movzx r15d, r15b
xor r14d, r12d
xor r11d, ebp
and r14d, 0xff00
and r11d, 0xff000000
or r15d, r11d
mov r11d, edx
shr edx, 8
or r15d, ebx
mov ebx, r8d
shr r11d, 0x10
shl r8d, 0x18
shl ebx, 0x10
xor r11d, ebp
xor r8d, r10d
mov dword [rsp + 0xb4], r15d
xor ebx, r13d
movzx r11d, r11b
and r8d, 0xff000000
and ebx, 0xff000000
or ebx, r11d
mov r11d, eax
shl r11d, 0x10
xor r11d, r10d
and r11d, 0xff0000
or r11d, r14d
or ebx, r11d
xor edx, r13d
shr eax, 8
shr ecx, 8
mov dword [rsp + 0x54], ebx
mov esi, dword [rsp + 0x44]
xor eax, r12d
xor ecx, ebp
movzx edx, dl
and ecx, 0xff00
and eax, 0xff0000
mov dword [rsp + 0xb8], ebx
or r8d, edx
or eax, ecx
vmovdqu xmm5, xmmword [rsp + 0x12c]
xor edi, r9d
mov ebx, r8d
mov ebp, dword [rsp + 0x40]
mov rdx, qword [rsp + 0x20]
mov r8d, 0x6c
xor esi, r9d
or ebx, eax
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x30]
mov dword [rsp + 0x11c], esi
vmovdqu xmm4, xmmword [rsp + 0x11c]
mov dword [rsp + 0x58], ebx
lea r13, [0x006ccd00]
mov dword [rsp + 0xbc], ebx
mov dword [rsp + 0xfc], edi
xor ebp, r9d
xor eax, r9d
mov dword [rsp + 0xd8], ebp
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0xc0], eax
mov eax, dword [rsp + 0x13c]
vmovdqu xmmword [rsp + 0x90], xmm5
vmovdqu xmmword [rsp + 0x80], xmm4
mov dword [rsp + 0xa0], eax
call sub.msvcrt.dll_memmove
mov rax, qword [rsp + 0x90]
lea rcx, [0x006cd100]
lea r9, [0x006cc900]
lea r8, [0x006cd500]
vmovdqu xmm2, xmmword [rsp + 0x80]
mov r11, r13
mov dword [rsp + 0x44], eax
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xc8], rax
mov eax, dword [rsp + 0xa0]
vmovdqu xmmword [rsp + 0xb0], xmm2
mov dword [rsp + 0xd0], eax
mov eax, esi
shr eax, 0x10
movzx eax, al
mov ebx, dword [rcx + rax*4]
mov eax, esi
movzx eax, ah
mov r14d, dword [r13 + rax*4]
movzx eax, sil
shr esi, 0x18
mov r10d, dword [r9 + rax*4]
mov r12d, dword [r8 + rsi*4]
mov eax, ebx
mov dword [rsp + 0x3c], ebx
mov ebx, dword [rsp + 0xb8]
xor eax, r14d
xor r12d, r10d
xor r12d, eax
mov eax, dword [rsp + 0xb4]
mov esi, eax
shr esi, 0x18
mov edx, esi
mov r8d, dword [r8 + rdx*4]
movzx edx, ah
mov esi, dword [r13 + rdx*4]
movzx edx, al
shr eax, 0x10
mov r13, r9
movzx eax, al
mov r9d, dword [r9 + rdx*4]
lea rdx, [0x006cd500]
mov dword [rsp + 0x40], esi
xor esi, dword [rcx + rax*4]
mov eax, r8d
xor eax, r9d
xor esi, eax
mov eax, ebx
shr eax, 0x18
mov eax, dword [rdx + rax*4]
movzx edx, bl
mov edx, dword [r13 + rdx*4]
mov dword [rsp + 0x2c], eax
xor r8d, eax
mov eax, ebx
movzx ebx, bh
shr eax, 0x10
mov r11d, dword [r11 + rbx*4]
movzx eax, al
mov ebx, dword [rsp + 0xbc]
mov r13d, dword [rsp + 0x2c]
mov eax, dword [rcx + rax*4]
xor r13d, edx
xor edx, r9d
mov r9d, ebx
xor r11d, eax
xor r13d, r11d
xor edx, r10d
shr r9d, 0x18
lea r10, [0x006cd500]
mov r10d, dword [r10 + r9*4]
mov r9d, ebx
shr r9d, 0x10
movzx r9d, r9b
mov r9d, dword [rcx + r9*4]
movzx ecx, bh
movzx ebx, bl
mov r11, rcx
lea rcx, [0x006ccd00]
xor r8d, r10d
mov r11d, dword [rcx + r11*4]
xor eax, r9d
xor eax, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x40]
vmovdqu xmm4, xmmword [rsp + 0x130]
xor r9d, r11d
xor ecx, r11d
xor ecx, r14d
lea r14, [0x006cc900]
xor r10d, dword [r14 + rbx*4]
mov ebx, edx
mov r14d, ecx
shl r14d, 8
vmovdqu xmmword [rsp + 0x90], xmm4
xor r10d, r9d
mov r9d, r12d
xor ebx, r10d
xor r9d, r8d
xor r14d, r10d
movzx r11d, bl
mov ebx, esi
and r9d, 0xff000000
xor ebx, eax
or r9d, r11d
mov r11d, ebx
mov ebx, r13d
xor ebx, ecx
and r11d, 0xff0000
and ebx, 0xff00
or r11d, ebx
mov ebx, r8d
or r9d, r11d
mov r11d, edx
shl ebx, 8
shr r11d, 0x18
xor ebx, esi
mov dword [rsp + 0xb0], r9d
xor r11d, r12d
and ebx, 0xff000000
movzx r11d, r11b
or ebx, r11d
mov r11d, eax
shl r11d, 8
xor r11d, r13d
and r11d, 0xff0000
and r14d, 0xff00
or r11d, r14d
mov r14d, ecx
shr ecx, 8
or ebx, r11d
mov r11d, edx
shr edx, 8
xor ecx, esi
mov dword [rsp + 0x3c], ebx
mov dword [rsp + 0xb4], ebx
mov ebx, r8d
shr r11d, 0x10
shl ebx, 0x10
xor r11d, esi
shl r8d, 0x18
xor edx, r13d
xor ebx, r13d
movzx r11d, r11b
xor r8d, r10d
and ecx, 0xff00
and ebx, 0xff000000
shr r14d, 0x10
and r8d, 0xff000000
movzx edx, dl
or ebx, r11d
mov r11d, eax
shr eax, 8
xor r14d, r12d
xor eax, r12d
shl r11d, 0x10
or r8d, edx
and r14d, 0xff00
and eax, 0xff0000
xor r11d, r10d
mov rdx, qword [rsp + 0x20]
lea r12, [0x006ccd00]
or eax, ecx
and r11d, 0xff0000
mov rcx, qword [rsp + 0x68]
lea r13, [0x006cc900]
or r8d, eax
mov eax, dword [rsp + 0x44]
or r11d, r14d
or ebx, r11d
mov dword [rsp + 0x60], r8d
mov dword [rsp + 0xbc], r8d
mov r8d, 0x70
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0xb8], ebx
mov ebx, r15d
xor eax, r9d
xor ebx, r9d
xor edi, r9d
xor ebp, r9d
mov dword [rsp + 0x120], edi
vmovdqu xmm3, xmmword [rsp + 0x120]
mov dword [rsp + 0x2c], ebx
mov dword [rsp + 0xd8], ebx
mov dword [rsp + 0x44], eax
mov rbx, r13
mov dword [rsp + 0xc0], eax
mov dword [rsp + 0xfc], ebp
vmovdqu xmmword [rsp + 0x80], xmm3
call sub.msvcrt.dll_memmove
mov eax, edi
lea r11, [0x006cd100]
shr eax, 0x10
vmovdqu xmm5, xmmword [rsp + 0x80]
lea rcx, [0x006cd500]
movzx eax, al
vmovdqu xmm1, xmmword [rsp + 0x90]
mov esi, dword [r11 + rax*4]
mov eax, edi
movzx eax, ah
mov r10d, dword [r12 + rax*4]
movzx eax, dil
shr edi, 0x18
mov r15d, dword [r13 + rax*4]
mov r14d, dword [rcx + rdi*4]
mov rdi, rcx
mov eax, esi
xor eax, r10d
vmovdqu xmmword [rsp + 0xb0], xmm5
xor r14d, r15d
vmovdqu xmmword [rsp + 0xc0], xmm1
xor r14d, eax
mov eax, dword [rsp + 0xb4]
mov edx, eax
shr edx, 0x18
mov r8d, dword [rcx + rdx*4]
movzx edx, ah
mov ecx, dword [r12 + rdx*4]
movzx edx, al
shr eax, 0x10
movzx eax, al
mov r9d, dword [r13 + rdx*4]
mov edx, dword [r11 + rax*4]
mov eax, r8d
xor eax, r9d
xor edx, ecx
mov r13d, edx
xor r13d, eax
mov eax, dword [rsp + 0xb8]
mov edx, eax
shr edx, 0x18
mov edi, dword [rdi + rdx*4]
mov edx, eax
shr edx, 0x10
movzx edx, dl
mov edx, dword [r11 + rdx*4]
movzx r11d, al
movzx eax, ah
mov r11d, dword [rbx + r11*4]
xor r8d, edi
mov ebx, dword [r12 + rax*4]
xor edi, r11d
xor r11d, r9d
xor ebx, edx
xor r11d, r15d
mov r15d, dword [rsp + 0x38]
mov r12d, ebx
lea rbx, [0x006cd100]
xor r12d, edi
lea rdi, [0x006cd500]
mov eax, r15d
shr eax, 0x18
mov edi, dword [rdi + rax*4]
mov eax, r15d
shr eax, 0x10
movzx eax, al
mov eax, dword [rbx + rax*4]
mov ebx, r15d
xor r8d, edi
xor edx, eax
xor edx, esi
movzx esi, bh
lea rbx, [0x006cc900]
mov r9, rsi
lea rsi, [0x006ccd00]
mov r9d, dword [rsi + r9*4]
mov esi, r11d
xor ecx, r9d
xor eax, r9d
mov r9d, r11d
xor ecx, r10d
movzx r10d, r15b
xor edi, dword [rbx + r10*4]
mov r10d, r12d
mov r15d, ecx
xor edi, eax
mov eax, r14d
xor eax, r8d
xor r9d, edi
xor r10d, ecx
shr esi, 0x18
and eax, 0xff000000
movzx r9d, r9b
and r10d, 0xff00
xor esi, r14d
or eax, r9d
mov r9d, r13d
xor r9d, edx
and r9d, 0xff0000
or r9d, r10d
mov r10d, r8d
shl r10d, 8
or eax, r9d
movzx r9d, sil
xor r10d, r13d
mov dword [rsp + 0xb0], eax
and r10d, 0xff000000
mov esi, r10d
mov r10d, ecx
or esi, r9d
mov r9d, edx
shl r10d, 8
shl r9d, 8
xor r10d, edi
xor r9d, r12d
and r10d, 0xff00
and r9d, 0xff0000
or r10d, r9d
mov r9d, r8d
or r10d, esi
mov esi, r11d
shl r9d, 0x10
shr esi, 0x10
xor r9d, r12d
mov dword [rsp + 0xb4], r10d
xor esi, r13d
and r9d, 0xff000000
movzx esi, sil
or r9d, esi
mov esi, edx
shl esi, 0x10
xor esi, edi
and esi, 0xff0000
shr r15d, 0x10
shr edx, 8
shr ecx, 8
shl r8d, 0x18
shr r11d, 8
xor r15d, r14d
xor edx, r14d
xor ecx, r13d
xor r8d, edi
xor r11d, r12d
and r15d, 0xff00
and edx, 0xff0000
and ecx, 0xff00
and r8d, 0xff000000
movzx r11d, r11b
or esi, r15d
or ecx, edx
or r8d, r11d
or esi, r9d
or ecx, r8d
dec dword [rsp + 0x64]
mov dword [rsp + 0xb8], esi
mov dword [rsp + 0xbc], ecx
jne 0x4943a0
mov edi, ebp
mov ebp, eax
mov eax, dword [rsp + 0xc0]
mov ebx, dword [rsp + 0x2c]
mov r9d, esi
mov edx, ecx
xor eax, ebp
bswap r10d
mov rsi, qword [rsp + 0x1a8]
mov dword [rsi], r10d
bswap r9d
mov dword [rsi + 4], r9d
bswap edx
mov dword [rsi + 8], edx
bswap eax
mov ecx, dword [rsp + 0x3c]
mov dword [rsi + 0xc], eax
xor ecx, ebp
bswap ecx
mov dword [rsi + 0x10], ecx
mov ecx, dword [rsp + 0x40]
bswap ecx
mov eax, dword [rsp + 0x60]
mov dword [rsi + 0x14], ecx
bswap eax
mov dword [rsi + 0x18], eax
mov eax, dword [rsp + 0x44]
bswap eax
xor ebx, ebp
mov dword [rsi + 0x1c], eax
mov r12d, ebx
bswap r12d
mov r14d, dword [rsp + 0x54]
mov dword [rsi + 0x20], r12d
bswap r14d
mov eax, dword [rsp + 0x58]
mov dword [rsi + 0x24], r14d
bswap eax
mov dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x5c]
bswap eax
mov dword [rsi + 0x2c], eax
xor ebp, edi
bswap ebp
mov r11d, dword [rsp + 0x48]
mov dword [rsi + 0x30], ebp
bswap r11d
mov r8d, dword [rsp + 0x4c]
mov dword [rsi + 0x34], r11d
bswap r8d
mov eax, dword [rsp + 0x50]
mov dword [rsi + 0x38], r8d
bswap eax
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 0x49511c
mov eax, edx
mov r8d, 0x10
mov byte [rsp + rax + 0x70], r10b
lea r10d, [rdx + 1]
sub r8, rax
lea r9, [rsp + rax + 0x70]
cmp r10d, 3
ja 0x49402b
mov byte [rsp + r10 + 0x70], 0
lea eax, [rdx + 2]
cmp edx, 2
je 0x49402b
mov byte [rsp + rax + 0x70], 0
lea eax, [rdx + 3]
cmp edx, 1
jne 0x495138
jmp 0x49402b
mov byte [rsp + 0x70], r10b
mov word [rsp + 0x71], 0
mov eax, 3
lea r9, [rsp + 0x70]
mov r8d, 0x10
mov edx, eax
mov byte [rsp + rdx + 0x70], 0
cmp eax, 2
jne 0x49402b
mov byte [rsp + 0x73], 0
jmp 0x49402b
xor r8d, r8d
mov r9, rdx
xor edx, edx
jmp 0x493fc0