Function at 0x498a10
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, 0x88
mov rax, r8
shl rax, 3
add qword [rcx + 0xa0], rax
mov r9d, dword [rcx + 4]
mov eax, dword [rcx]
mov qword [rsp + 0xe0], r8
mov dword [rsp + 0x24], eax
cmp r9d, 3
ja 0x49a1d8
mov r8d, 4
sub r8d, r9d
cmp r8, qword [rsp + 0xe0]
ja 0x49a1f8
mov r8d, 3
sub r8d, r9d
mov r9d, 4
mov eax, dword [rsp + 0x24]
movzx r10d, byte [rdx]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x24], eax
test r8d, r8d
je 0x498ac3
movzx r10d, byte [rdx + 1]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x24], eax
cmp r8d, 1
je 0x498ac3
movzx r10d, byte [rdx + 2]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x24], eax
cmp r8d, 2
je 0x498ac3
movzx r10d, byte [rdx + 3]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0xe0]
lea rdx, [rdx + r8 + 1]
lea r10, [rax - 1]
sub r10, r8
mov qword [rsp + 0xe0], r10
je 0x49aad0
mov r8d, dword [rcx + 8]
cmp r8d, 2
je 0x49aae0
ja 0x49a220
test r8d, r8d
je 0x49a2b0
mov eax, dword [rcx + 0x98]
mov r12d, dword [rcx + 0x78]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x88]
mov edi, dword [rcx + 0x7c]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x80]
lea r15, [0x006fabe0]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x84]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x68], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x70], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x28], eax
lea rax, [0x006fa7e0]
mov qword [rsp + 0x18], rax
lea rax, [0x006fa3e0]
mov qword [rsp + 8], rax
lea rax, [0x006f9fe0]
mov qword [rsp + 0x10], rax
mov eax, dword [rsp + 0x38]
mov r8d, dword [rcx + 0x6c]
xor edi, dword [rcx + 0x54]
xor eax, dword [rsp + 0x24]
xor r8d, edi
mov dword [rsp + 0x38], eax
mov dword [rcx + 0x98], eax
mov dword [rsp + 0x58], edi
mov eax, edi
mov dword [rcx + 0x7c], edi
mov r9d, dword [rsp + 0x48]
mov edi, dword [rsp + 0x30]
mov esi, dword [rsp + 0x40]
xor r9d, edi
mov dword [rcx + 0x2c], r9d
mov r9d, r8d
xor dword [rcx + 0x24], eax
shr r9d, 0x10
mov rax, qword [rsp + 0x18]
xor esi, dword [rcx + 0x60]
mov r14, qword [rsp + 0x10]
mov ebp, dword [rcx + 0x74]
movzx r9d, r9b
mov r13d, dword [rax + r9*4]
mov dword [rsp + 0x50], esi
movzx r9d, r8b
mov dword [rcx + 0x88], esi
mov ebx, dword [rcx + 0x70]
mov esi, dword [rsp + 0x34]
xor ebp, edi
mov edi, dword [r14 + r9*4]
xor ebx, esi
mov eax, r8d
shr r8d, 0x18
xor r12d, esi
mov dword [rsp + 0x3c], edi
mov rsi, qword [rsp + 8]
xor edi, dword [r15 + r8*4]
mov r8d, ebx
shr r8d, 0x18
movzx eax, ah
mov r11d, dword [r15 + r8*4]
xor dword [rcx + 0x28], r12d
movzx r8d, bl
mov r12d, dword [rsi + rax*4]
movzx eax, bh
mov r10d, dword [rsi + rax*4]
shr ebx, 0x10
mov r9d, dword [r14 + r8*4]
movzx r8d, bl
mov ebx, r11d
mov rax, qword [rsp + 0x18]
xor ebx, r9d
mov esi, ebx
xor esi, dword [rax + r8*4]
mov r8d, ebp
shr r8d, 0x18
mov ebx, dword [r15 + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
mov r8d, dword [rax + r8*4]
mov rax, r14
movzx r14d, bpl
mov eax, dword [rax + r14*4]
xor r11d, ebx
mov r14d, eax
mov eax, ebp
movzx ebp, ah
xor ebx, r14d
mov rax, qword [rsp + 8]
xor ebx, r8d
xor ebx, dword [rax + rbp*4]
mov eax, dword [rsp + 0x24]
xor r9d, r14d
mov r14d, dword [rsp + 0x3c]
mov ebp, eax
xor r14d, r9d
shr ebp, 0x10
mov r9d, eax
mov rax, qword [rsp + 0x18]
movzx ebp, bpl
mov ebp, dword [rax + rbp*4]
shr r9d, 0x18
mov eax, dword [rsp + 0x24]
mov r9d, dword [r15 + r9*4]
xor r8d, ebp
xor edi, r13d
movzx eax, ah
xor edi, r12d
xor esi, r10d
xor r11d, r9d
xor r13d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
movzx eax, byte [rsp + 0x24]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x10]
xor r9d, dword [r12 + rax*4]
xor r9d, ebp
mov ebp, esi
xor r8d, r9d
xor ebp, r13d
mov r9d, edi
xor r9d, r11d
mov dword [rsp + 0x48], ebp
mov ebp, r14d
xor ebp, r8d
mov dword [rsp + 0x40], r9d
mov r9d, ebx
xor r9d, r10d
mov dword [rsp + 0x78], ebp
mov ebp, r11d
shl ebp, 8
mov dword [rsp + 0x7c], r9d
mov r9d, r14d
mov eax, ebp
shr r9d, 0x18
xor eax, esi
xor r9d, edi
and eax, 0xff000000
movzx r9d, r9b
or eax, r9d
mov r9d, r13d
shl r9d, 8
xor r9d, ebx
and r9d, 0xff0000
or eax, r9d
mov r9d, r10d
shl r9d, 8
xor r9d, r8d
and r9d, 0xff00
or eax, r9d
mov ebp, r14d
mov r9d, r11d
shl r9d, 0x10
shr ebp, 0x10
xor r9d, ebx
xor ebp, esi
and r9d, 0xff000000
movzx ebp, bpl
or r9d, ebp
mov ebp, r13d
shl ebp, 0x10
xor ebp, r8d
and ebp, 0xff0000
shr r14d, 8
shl r11d, 0x18
xor r11d, r8d
xor ebx, r14d
shr r13d, 8
or r9d, ebp
movzx r14d, bl
xor r13d, edi
mov ebp, r10d
and r11d, 0xff000000
shr r10d, 8
or r11d, r14d
and r13d, 0xff0000
xor r10d, esi
or r11d, r13d
and r10d, 0xff00
or r11d, r10d
shr ebp, 0x10
mov esi, r11d
xor ebp, edi
mov dword [rsp + 0x64], r11d
mov dword [rcx + 0x78], r11d
mov r11d, dword [rcx + 0x60]
and ebp, 0xff00
mov edi, dword [rcx + 0x68]
or r9d, ebp
xor r11d, eax
mov dword [rcx + 0x70], eax
xor eax, dword [rsp + 0x2c]
xor edi, esi
mov dword [rsp + 0x3c], r9d
mov dword [rcx + 0x74], r9d
mov ebx, dword [rcx + 0x64]
mov dword [rcx + 0x18], eax
xor dword [rcx + 0x20], esi
mov esi, r11d
mov r12, qword [rsp + 0x18]
shr esi, 0x10
mov r10d, dword [rsp + 0x60]
mov r14, qword [rsp + 0x10]
movzx eax, sil
mov r8d, dword [r12 + rax*4]
xor ebx, r9d
xor r10d, r9d
mov eax, r11d
movzx r9d, r11b
shr r11d, 0x18
mov r13, qword [rsp + 8]
mov r9d, dword [r14 + r9*4]
mov esi, dword [r15 + r11*4]
movzx eax, ah
movzx r11d, bl
mov eax, dword [r13 + rax*4]
mov r11d, dword [r14 + r11*4]
xor esi, r9d
mov dword [rcx + 0x1c], r10d
mov r10d, ebx
xor esi, r8d
shr r10d, 0x18
xor esi, eax
mov dword [rsp + 0x24], eax
mov r10d, dword [r15 + r10*4]
mov eax, r11d
movzx ebp, bh
shr ebx, 0x10
movzx r11d, bl
mov ebx, eax
xor ebx, r10d
xor ebx, dword [r12 + r11*4]
mov r11d, edi
shr r11d, 0x18
mov ebp, dword [r13 + rbp*4]
mov r13d, dword [r15 + r11*4]
mov r11d, edi
shr r11d, 0x10
mov dword [rsp + 0x2c], eax
movzx r11d, r11b
mov r12d, dword [r12 + r11*4]
movzx r11d, dil
mov r14d, dword [r14 + r11*4]
xor r9d, dword [rsp + 0x2c]
mov r11d, r13d
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x40]
mov eax, edi
shr r9d, 0x18
mov r9d, dword [r15 + r9*4]
movzx edi, ah
xor r10d, r9d
xor r13d, r10d
mov rax, qword [rsp + 8]
mov r10, qword [rsp + 0x48]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
shr r10, 0x10
mov rdi, qword [rsp + 0x18]
and r10d, 0xff
mov r10d, dword [rdi + r10*4]
mov eax, dword [rsp + 0x7c]
xor r8d, r10d
movzx eax, ah
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
xor ebx, ebp
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x24]
movzx edi, byte [rsp + 0x78]
xor eax, ebp
mov rbp, qword [rsp + 0x10]
xor eax, r8d
xor r9d, dword [rbp + rdi*4]
xor r9d, r10d
xor r8d, r9d
mov r9d, ebx
xor r9d, r12d
mov dword [rsp + 0x40], r9d
mov r10d, esi
mov r9d, r13d
xor r10d, r13d
shl r9d, 8
xor r9d, ebx
mov dword [rsp + 0x2c], r10d
mov r10d, r11d
xor r10d, eax
and r9d, 0xff000000
mov dword [rsp + 0x78], r10d
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
mov edi, r14d
xor r9d, r11d
xor edi, r8d
and r9d, 0xff0000
or r9d, r10d
mov r10d, eax
shl r10d, 8
xor r10d, r8d
and r10d, 0xff00
or r9d, r10d
mov r10d, r14d
shr r10d, 0x18
xor r10d, esi
movzx r10d, r10b
or r9d, r10d
mov r10d, r9d
mov dword [rsp + 0x60], r9d
mov dword [rcx + 0x64], r9d
mov r9d, r13d
shl r9d, 0x10
xor r9d, r11d
and r9d, 0xff000000
mov dword [rsp + 0x48], edi
mov edi, r9d
mov r9d, r12d
shl r9d, 0x10
xor r9d, r8d
and r9d, 0xff0000
or r9d, edi
mov edi, eax
shr edi, 0x10
xor edi, esi
and edi, 0xff00
or r9d, edi
mov edi, r14d
shr edi, 0x10
shl r13d, 0x18
shr r12d, 8
xor edi, ebx
xor r13d, r8d
xor r12d, esi
shr eax, 8
and r12d, 0xff0000
and r13d, 0xff000000
xor eax, ebx
movzx edi, dil
or edi, r9d
or r13d, r12d
and eax, 0xff00
shr r14d, 8
xor r11d, r14d
mov r8d, dword [rcx + 0x54]
mov r14d, dword [rsp + 0x68]
xor r8d, r10d
xor r14d, r10d
mov dword [rcx + 0xc], r14d
mov ebx, dword [rcx + 0x58]
mov r14d, r8d
mov r12, qword [rsp + 0x18]
or r13d, eax
shr r14d, 0x10
mov esi, dword [rcx + 0x5c]
movzx r11d, r11b
xor ebx, edi
or r13d, r11d
movzx eax, r14b
mov dword [rcx + 0x68], edi
xor edi, dword [rsp + 0x70]
xor esi, r13d
movzx r9d, r8b
mov dword [rcx + 0x6c], r13d
mov dword [rcx + 0x10], edi
xor r13d, dword [rsp + 0x28]
mov edi, dword [r12 + rax*4]
mov eax, r8d
shr r8d, 0x18
mov r11d, dword [rbp + r9*4]
mov r14d, dword [r15 + r8*4]
mov dword [rcx + 0x14], r13d
mov r13, qword [rsp + 8]
movzx eax, ah
mov r10d, dword [r13 + rax*4]
xor r14d, r11d
movzx eax, bh
mov r8d, ebx
xor r14d, edi
shr r8d, 0x18
mov dword [rsp + 0x10], edi
mov edi, dword [r13 + rax*4]
mov r9d, dword [r15 + r8*4]
mov eax, r10d
movzx r8d, bl
mov r8d, dword [rbp + r8*4]
xor eax, edi
shr ebx, 0x10
mov dword [rsp + 0x24], eax
mov rax, rbp
mov ebp, r9d
xor r14d, r10d
xor ebp, r8d
movzx r10d, bl
xor ebp, dword [r12 + r10*4]
xor r8d, r11d
mov r11d, esi
xor ebp, edi
shr r11d, 0x18
mov edi, esi
shr edi, 0x10
mov r10d, r11d
mov r11d, dword [r15 + r10*4]
movzx r10d, dil
mov edi, dword [r12 + r10*4]
mov ebx, dword [rsp + 0x10]
movzx r10d, sil
xor ebx, edi
mov dword [rsp + 0x28], ebx
mov ebx, dword [rax + r10*4]
mov qword [rsp + 0x10], rax
xor r9d, r11d
mov eax, esi
xor r11d, ebx
movzx esi, ah
xor r11d, edi
xor r11d, dword [r13 + rsi*4]
mov esi, dword [rsp + 0x2c]
mov r10d, r11d
shr esi, 0x18
mov r11d, esi
mov esi, dword [r15 + r11*4]
mov r11, qword [rsp + 0x40]
xor r8d, ebx
mov ebx, dword [rsp + 0x78]
xor r9d, esi
shr r11, 0x10
mov rdi, r13
and r11d, 0xff
movzx ebx, bh
mov r13d, dword [r12 + r11*4]
mov r12d, dword [rdi + rbx*4]
mov r11, qword [rsp + 0x10]
movzx edi, byte [rsp + 0x48]
mov eax, dword [rsp + 0x28]
xor esi, dword [r11 + rdi*4]
xor esi, r13d
xor esi, r12d
mov r11d, esi
mov esi, r14d
xor esi, r9d
and esi, 0xff000000
xor eax, r13d
mov edi, esi
mov esi, ebp
xor esi, eax
and esi, 0xff0000
or esi, edi
mov edi, r8d
xor edi, r11d
mov ebx, dword [rsp + 0x24]
movzx edi, dil
xor ebx, r12d
or esi, edi
mov edi, r10d
xor edi, ebx
and edi, 0xff00
or esi, edi
mov dword [rcx + 0x54], esi
mov edi, r9d
mov r13d, esi
mov esi, r8d
shl edi, 8
shr esi, 0x18
xor edi, ebp
xor esi, r14d
and edi, 0xff000000
movzx esi, sil
or edi, esi
mov esi, eax
shl esi, 8
xor esi, r10d
and esi, 0xff0000
or edi, esi
mov esi, ebx
shl esi, 8
xor esi, r11d
and esi, 0xff00
or edi, esi
mov r12d, r8d
mov esi, r9d
shl esi, 0x10
shr r12d, 0x10
xor esi, r10d
xor r12d, ebp
and esi, 0xff000000
movzx r12d, r12b
or esi, r12d
mov r12d, eax
shl r12d, 0x10
xor r12d, r11d
shl r9d, 0x18
shr r8d, 8
and r12d, 0xff0000
xor r9d, r11d
xor r8d, r10d
shr eax, 8
or esi, r12d
and r9d, 0xff000000
mov r12d, ebx
movzx r8d, r8b
xor eax, r14d
shr ebx, 8
or r9d, r8d
and eax, 0xff0000
shr r12d, 0x10
xor ebx, ebp
or r9d, eax
xor r12d, r14d
mov eax, ebx
and r12d, 0xff00
and eax, 0xff00
or esi, r12d
or r9d, eax
cmp qword [rsp + 0xe0], 4
mov dword [rcx + 0x58], edi
mov dword [rsp + 0x2c], esi
mov dword [rcx + 0x5c], esi
mov dword [rsp + 0x28], r9d
mov dword [rcx + 0x60], r9d
mov r8d, 2
jbe 0x49a177
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
mov dword [rsp + 0x24], eax
add rdx, 4
mov eax, dword [rsp + 0x3c]
mov ebx, dword [rsp + 0x60]
mov r8d, dword [rcx + 0x48]
xor edi, dword [rcx + 0x30]
xor eax, dword [rsp + 0x24]
xor ebx, dword [rcx + 0x3c]
xor r8d, edi
mov dword [rsp + 0x3c], eax
mov dword [rcx + 0x74], eax
mov dword [rsp + 0x40], edi
mov eax, edi
mov dword [rcx + 0x58], edi
mov dword [rsp + 0x60], ebx
mov edi, dword [rsp + 0x2c]
mov dword [rcx + 0x64], ebx
mov ebx, dword [rcx + 0x4c]
mov esi, r13d
mov r9d, r8d
xor ebx, edi
mov r14d, dword [rsp + 0x28]
xor esi, edi
xor dword [rcx + 0x90], eax
mov edi, dword [rsp + 0x38]
mov rax, qword [rsp + 0x18]
shr r9d, 0x10
movzx r9d, r9b
mov r13d, dword [rax + r9*4]
xor edi, r14d
xor dword [rcx + 0x94], esi
movzx r9d, r8b
mov rsi, qword [rsp + 8]
mov eax, r8d
shr r8d, 0x18
mov dword [rcx + 0x98], edi
movzx eax, ah
mov edi, dword [r15 + r8*4]
mov r8d, ebx
mov r12d, dword [rsi + rax*4]
shr r8d, 0x18
movzx eax, bh
mov r11d, dword [r15 + r8*4]
mov r8d, dword [rsi + rax*4]
mov r10, qword [rsp + 0x10]
mov ebp, dword [rcx + 0x50]
mov dword [rsp + 0x38], r8d
movzx r8d, bl
xor ebp, r14d
shr ebx, 0x10
mov r14d, dword [r10 + r9*4]
mov r9d, dword [r10 + r8*4]
movzx r8d, bl
mov ebx, r11d
mov rax, qword [rsp + 0x18]
xor ebx, r9d
mov esi, ebx
xor esi, dword [rax + r8*4]
mov r8d, ebp
shr r8d, 0x18
mov ebx, dword [r15 + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
mov r8d, dword [rax + r8*4]
mov rax, r10
movzx r10d, bpl
mov eax, dword [rax + r10*4]
xor r11d, ebx
mov r10d, eax
mov dword [rsp + 0x48], r10d
mov eax, ebp
movzx ebp, ah
xor ebx, r10d
mov eax, dword [rsp + 0x24]
mov r10, qword [rsp + 8]
xor ebx, r8d
xor ebx, dword [r10 + rbp*4]
xor r9d, dword [rsp + 0x48]
mov ebp, eax
xor edi, r14d
shr ebp, 0x10
xor r14d, r9d
mov r9d, eax
mov rax, qword [rsp + 0x18]
movzx ebp, bpl
mov ebp, dword [rax + rbp*4]
shr r9d, 0x18
mov eax, dword [rsp + 0x24]
mov r9d, dword [r15 + r9*4]
xor r8d, ebp
xor edi, r13d
movzx eax, ah
xor esi, dword [rsp + 0x38]
xor edi, r12d
xor r11d, r9d
xor r13d, r8d
mov r8d, dword [r10 + rax*4]
mov r10d, dword [rsp + 0x38]
movzx eax, byte [rsp + 0x24]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x10]
xor r9d, dword [r12 + rax*4]
xor r9d, ebp
xor r8d, r9d
mov r9d, edi
xor r9d, r11d
mov dword [rsp + 0x68], r9d
mov r9d, r11d
shl r9d, 8
mov eax, r9d
mov r9d, r14d
shr r9d, 0x18
xor eax, esi
xor r9d, edi
and eax, 0xff000000
movzx r9d, r9b
or eax, r9d
mov r9d, r13d
shl r9d, 8
xor r9d, ebx
and r9d, 0xff0000
or eax, r9d
mov ebp, esi
mov r9d, r10d
xor ebp, r13d
shl r9d, 8
xor r9d, r8d
mov dword [rsp + 0x70], ebp
mov ebp, r14d
xor ebp, r8d
and r9d, 0xff00
or eax, r9d
mov dword [rsp + 0x78], ebp
mov r9d, r11d
mov ebp, r14d
shl r9d, 0x10
shr ebp, 0x10
xor r9d, ebx
xor ebp, esi
and r9d, 0xff000000
movzx ebp, bpl
or r9d, ebp
mov ebp, r13d
shl ebp, 0x10
mov r12d, ebx
xor ebp, r8d
xor r12d, r10d
and ebp, 0xff0000
shl r11d, 0x18
shr r14d, 8
or r9d, ebp
xor r8d, r11d
xor ebx, r14d
mov ebp, r10d
shr r13d, 8
movzx r14d, bl
xor r13d, edi
shr ebp, 0x10
and r8d, 0xff000000
shr r10d, 8
xor ebp, edi
or r8d, r14d
and r13d, 0xff0000
xor r10d, esi
and ebp, 0xff00
or r8d, r13d
and r10d, 0xff00
or r9d, ebp
or r8d, r10d
mov r10d, dword [rcx + 0x3c]
mov dword [rsp + 0x7c], r12d
mov dword [rcx + 0x4c], eax
mov dword [rsp + 0x38], r9d
mov dword [rcx + 0x50], r9d
mov dword [rsp + 0x48], r8d
mov dword [rcx + 0x54], r8d
mov ebx, dword [rcx + 0x40]
mov edi, dword [rcx + 0x44]
xor r10d, eax
xor edi, r8d
mov r11d, r8d
mov esi, r10d
mov r8d, dword [rsp + 0x50]
mov r14, qword [rsp + 0x18]
xor eax, dword [rsp + 0x30]
shr esi, 0x10
xor r8d, r9d
mov dword [rcx + 0x84], eax
movzx eax, sil
mov r12, qword [rsp + 8]
mov dword [rcx + 0x88], r8d
mov r8d, dword [r14 + rax*4]
mov eax, r10d
movzx eax, ah
xor dword [rcx + 0x8c], r11d
mov r11d, dword [r12 + rax*4]
mov rax, qword [rsp + 0x10]
xor ebx, r9d
movzx r9d, r10b
shr r10d, 0x18
mov r9d, dword [rax + r9*4]
mov esi, dword [r15 + r10*4]
mov dword [rsp + 0x24], r11d
xor esi, r9d
xor esi, r8d
xor esi, r11d
mov r10d, ebx
movzx r11d, bl
mov r13d, dword [rax + r11*4]
shr r10d, 0x18
mov r10d, dword [r15 + r10*4]
movzx ebp, bh
shr ebx, 0x10
movzx r11d, bl
mov ebx, r13d
xor ebx, r10d
xor ebx, dword [r14 + r11*4]
mov r11d, edi
shr r11d, 0x18
mov dword [rsp + 0x30], r13d
mov r13d, dword [r15 + r11*4]
mov r11d, edi
shr r11d, 0x10
movzx r11d, r11b
mov ebp, dword [r12 + rbp*4]
mov r12d, dword [r14 + r11*4]
movzx r11d, dil
mov r14d, dword [rax + r11*4]
xor r9d, dword [rsp + 0x30]
mov r11d, r13d
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x68]
mov eax, edi
shr r9d, 0x18
mov r9d, dword [r15 + r9*4]
movzx edi, ah
xor r10d, r9d
xor r13d, r10d
mov rax, qword [rsp + 8]
mov r10, qword [rsp + 0x70]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
shr r10, 0x10
mov rdi, qword [rsp + 0x18]
and r10d, 0xff
mov r10d, dword [rdi + r10*4]
mov eax, dword [rsp + 0x7c]
xor r8d, r10d
movzx eax, ah
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
xor ebx, ebp
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x24]
movzx edi, byte [rsp + 0x78]
xor eax, ebp
mov rbp, qword [rsp + 0x10]
xor eax, r8d
xor r9d, dword [rbp + rdi*4]
xor r9d, r10d
xor r8d, r9d
mov r9d, ebx
xor r9d, r12d
mov dword [rsp + 0x68], r9d
mov r10d, esi
mov r9d, r13d
xor r10d, r13d
shl r9d, 8
xor r9d, ebx
mov dword [rsp + 0x30], r10d
mov r10d, r11d
xor r10d, eax
and r9d, 0xff000000
mov dword [rsp + 0x78], r10d
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
mov ebp, r14d
xor r9d, r11d
xor ebp, r8d
and r9d, 0xff0000
or r9d, r10d
mov r10d, eax
shl r10d, 8
xor r10d, r8d
and r10d, 0xff00
or r9d, r10d
mov r10d, r14d
shr r10d, 0x18
xor r10d, esi
movzx r10d, r10b
or r9d, r10d
mov r10d, r9d
mov dword [rsp + 0x50], r9d
mov dword [rcx + 0x40], r9d
mov edi, r13d
mov r9d, r12d
shl edi, 0x10
shl r9d, 0x10
xor edi, r11d
xor r9d, r8d
and r9d, 0xff0000
and edi, 0xff000000
or edi, r9d
mov r9d, eax
shr r9d, 0x10
xor r9d, esi
and r9d, 0xff00
or edi, r9d
mov r9d, r14d
shr r9d, 0x10
shl r13d, 0x18
shr r12d, 8
xor r9d, ebx
xor r13d, r8d
xor r12d, esi
mov r8d, dword [rcx + 0x30]
shr eax, 8
and r12d, 0xff0000
movzx r9d, r9b
and r13d, 0xff000000
xor eax, ebx
mov ebx, dword [rcx + 0x34]
or edi, r9d
or r13d, r12d
and eax, 0xff00
xor r8d, r10d
shr r14d, 8
xor ebx, edi
xor r14d, r11d
mov dword [rcx + 0x44], edi
mov r12d, r8d
xor edi, dword [rsp + 0x58]
or r13d, eax
shr r12d, 0x10
mov dword [rsp + 0x70], ebp
mov dword [rcx + 0x7c], edi
mov ebp, dword [rcx + 0x38]
mov rdi, qword [rsp + 0x18]
mov r11d, dword [rsp + 0x64]
movzx esi, r14b
or esi, r13d
movzx eax, r12b
xor ebp, esi
mov r12d, dword [rdi + rax*4]
mov r14, qword [rsp + 0x10]
xor r11d, r10d
mov dword [rcx + 0x48], esi
movzx r10d, r8b
xor esi, dword [rsp + 0x34]
mov eax, r8d
shr r8d, 0x18
mov r13d, dword [r15 + r8*4]
mov dword [rcx + 0x80], esi
mov r8d, ebx
mov rsi, qword [rsp + 8]
shr r8d, 0x18
mov dword [rcx + 0x78], r11d
movzx eax, ah
mov r11d, dword [r14 + r10*4]
mov r9d, dword [rsi + rax*4]
mov r10d, dword [r15 + r8*4]
movzx eax, bh
movzx r8d, bl
xor r13d, r11d
mov dword [rsp + 0x10], r12d
mov esi, dword [rsi + rax*4]
mov r8d, dword [r14 + r8*4]
xor r13d, r12d
shr ebx, 0x10
mov r12d, r10d
xor r12d, r8d
movzx ebx, bl
xor r12d, dword [rdi + rbx*4]
mov ebx, ebp
mov rax, r14
shr ebx, 0x10
mov r14d, ebp
shr r14d, 0x18
movzx ebx, bl
xor r8d, r11d
mov r11d, r14d
mov r14, rdi
mov edi, dword [rdi + rbx*4]
mov ebx, dword [rsp + 0x10]
mov r11d, dword [r15 + r11*4]
xor ebx, edi
mov dword [rsp + 0x24], ebx
movzx ebx, bpl
mov ebx, dword [rax + rbx*4]
xor r10d, r11d
xor r11d, ebx
xor r11d, edi
mov qword [rsp + 0x10], rax
mov rdi, qword [rsp + 8]
mov eax, ebp
movzx ebp, ah
xor r13d, r9d
xor r12d, esi
xor r9d, esi
mov esi, dword [rdi + rbp*4]
xor r8d, ebx
xor esi, r11d
mov r11d, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x68]
shr r11d, 0x18
mov r11d, dword [r15 + r11*4]
mov eax, dword [rsp + 0x24]
xor r10d, r11d
shr rbx, 0x10
and ebx, 0xff
mov r14d, dword [r14 + rbx*4]
mov ebx, dword [rsp + 0x78]
xor eax, r14d
movzx ebx, bh
mov ebp, dword [rdi + rbx*4]
movzx ebx, byte [rsp + 0x70]
mov rdi, qword [rsp + 0x10]
xor r9d, ebp
xor r11d, dword [rdi + rbx*4]
xor r11d, r14d
mov edi, r11d
mov r11d, r13d
xor r11d, r10d
mov ebx, r11d
mov r11d, r12d
xor r11d, eax
and ebx, 0xff000000
and r11d, 0xff0000
xor edi, ebp
or r11d, ebx
mov ebx, r8d
xor ebx, edi
movzx ebx, bl
or r11d, ebx
mov ebx, esi
xor ebx, r9d
and ebx, 0xff00
or r11d, ebx
mov ebp, r8d
mov ebx, r10d
shl ebx, 8
shr ebp, 0x18
xor ebx, r12d
xor ebp, r13d
and ebx, 0xff000000
movzx ebp, bpl
or ebx, ebp
mov ebp, eax
shl ebp, 8
xor ebp, esi
and ebp, 0xff0000
or ebx, ebp
mov ebp, r9d
shl ebp, 8
xor ebp, edi
and ebp, 0xff00
or ebx, ebp
mov r14d, r8d
mov ebp, r10d
shl ebp, 0x10
shr r14d, 0x10
xor ebp, esi
xor r14d, r12d
and ebp, 0xff000000
movzx r14d, r14b
or ebp, r14d
mov r14d, eax
shl r14d, 0x10
xor r14d, edi
and r14d, 0xff0000
shl r10d, 0x18
shr r8d, 8
or ebp, r14d
xor r10d, edi
mov r14d, r9d
xor r8d, esi
shr eax, 8
shr r14d, 0x10
and r10d, 0xff000000
movzx r8d, r8b
xor eax, r13d
shr r9d, 8
or r10d, r8d
xor r14d, r13d
and eax, 0xff0000
xor r9d, r12d
and r14d, 0xff00
or r10d, eax
and r9d, 0xff00
or ebp, r14d
or r10d, r9d
cmp qword [rsp + 0xe0], 4
mov dword [rcx + 0x30], r11d
mov dword [rcx + 0x34], ebx
mov dword [rsp + 0x30], ebp
mov dword [rcx + 0x38], ebp
mov dword [rsp + 0x34], r10d
mov dword [rcx + 0x3c], r10d
mov r8d, 3
jbe 0x49a177
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
mov dword [rsp + 0x24], eax
add rdx, 4
mov edi, dword [rsp + 0x34]
mov eax, dword [rsp + 0x38]
mov r8d, dword [rcx + 0x24]
mov r9d, dword [rsp + 0x3c]
xor ebx, dword [rcx + 0xc]
mov esi, dword [rsp + 0x50]
xor r8d, ebx
xor eax, dword [rsp + 0x24]
xor r9d, edi
xor esi, dword [rcx + 0x18]
mov dword [rsp + 0x58], eax
mov dword [rcx + 0x50], eax
mov dword [rcx + 0x74], r9d
mov eax, ebx
mov r9d, r8d
xor dword [rcx + 0x6c], eax
mov dword [rsp + 0x64], ebx
mov rax, qword [rsp + 0x18]
mov dword [rcx + 0x34], ebx
mov dword [rsp + 0x50], esi
mov dword [rcx + 0x40], esi
mov ebx, dword [rcx + 0x28]
mov esi, dword [rsp + 0x30]
shr r9d, 0x10
mov ebp, dword [rcx + 0x2c]
movzx r9d, r9b
xor ebx, esi
mov r13d, dword [rax + r9*4]
xor r11d, esi
movzx r9d, r8b
mov rsi, qword [rsp + 8]
mov eax, r8d
shr r8d, 0x18
xor ebp, edi
movzx eax, ah
mov edi, dword [r15 + r8*4]
mov r8d, ebx
mov r12d, dword [rsi + rax*4]
shr r8d, 0x18
movzx eax, bh
xor dword [rcx + 0x70], r11d
mov r11d, dword [r15 + r8*4]
mov r8d, dword [rsi + rax*4]
mov r10, qword [rsp + 0x10]
mov dword [rsp + 0x38], r8d
movzx r8d, bl
mov r14d, dword [r10 + r9*4]
mov r9d, dword [r10 + r8*4]
mov r8d, r11d
xor r8d, r9d
mov rax, qword [rsp + 0x18]
shr ebx, 0x10
mov esi, r8d
mov r8d, ebp
shr r8d, 0x18
movzx ebx, bl
xor esi, dword [rax + rbx*4]
mov ebx, dword [r15 + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
mov r8d, dword [rax + r8*4]
mov rax, r10
movzx r10d, bpl
mov eax, dword [rax + r10*4]
xor r11d, ebx
mov r10d, eax
mov dword [rsp + 0x3c], r10d
mov eax, ebp
movzx ebp, ah
xor ebx, r10d
mov eax, dword [rsp + 0x24]
mov r10, qword [rsp + 8]
xor ebx, r8d
xor ebx, dword [r10 + rbp*4]
xor r9d, dword [rsp + 0x3c]
mov ebp, eax
xor edi, r14d
shr ebp, 0x10
xor r14d, r9d
mov r9d, eax
mov rax, qword [rsp + 0x18]
movzx ebp, bpl
mov ebp, dword [rax + rbp*4]
shr r9d, 0x18
mov eax, dword [rsp + 0x24]
mov r9d, dword [r15 + r9*4]
xor r8d, ebp
xor edi, r13d
movzx eax, ah
xor esi, dword [rsp + 0x38]
xor edi, r12d
xor r11d, r9d
xor r13d, r8d
mov r8d, dword [r10 + rax*4]
mov r10d, dword [rsp + 0x38]
movzx eax, byte [rsp + 0x24]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x10]
xor r9d, dword [r12 + rax*4]
xor r9d, ebp
mov ebp, esi
xor r8d, r9d
xor ebp, r13d
mov r9d, edi
xor r9d, r11d
mov dword [rsp + 0x70], ebp
mov ebp, r14d
xor ebp, r8d
mov dword [rsp + 0x68], r9d
mov r9d, ebx
xor r9d, r10d
mov dword [rsp + 0x78], ebp
mov ebp, r11d
shl ebp, 8
mov dword [rsp + 0x7c], r9d
mov r9d, r14d
mov eax, ebp
shr r9d, 0x18
xor eax, esi
xor r9d, edi
and eax, 0xff000000
movzx r9d, r9b
or eax, r9d
mov r9d, r13d
shl r9d, 8
xor r9d, ebx
and r9d, 0xff0000
or eax, r9d
mov r9d, r10d
shl r9d, 8
xor r9d, r8d
and r9d, 0xff00
or eax, r9d
mov ebp, r14d
mov r9d, r11d
shl r9d, 0x10
shr ebp, 0x10
xor r9d, ebx
xor ebp, esi
and r9d, 0xff000000
movzx ebp, bpl
or r9d, ebp
mov ebp, r13d
shl ebp, 0x10
xor ebp, r8d
and ebp, 0xff0000
shl r11d, 0x18
shr r14d, 8
or r9d, ebp
xor r8d, r11d
xor ebx, r14d
mov ebp, r10d
shr r13d, 8
movzx r14d, bl
xor r13d, edi
mov r11d, dword [rcx + 0x18]
shr ebp, 0x10
and r8d, 0xff000000
shr r10d, 8
xor ebp, edi
or r8d, r14d
and r13d, 0xff0000
xor r10d, esi
xor r11d, eax
and ebp, 0xff00
or r8d, r13d
and r10d, 0xff00
or r9d, ebp
or r8d, r10d
mov esi, r11d
shr esi, 0x10
mov dword [rcx + 0x28], eax
mov dword [rsp + 0x38], r9d
mov dword [rcx + 0x2c], r9d
mov dword [rsp + 0x3c], r8d
mov dword [rcx + 0x30], r8d
mov ebx, dword [rcx + 0x1c]
mov edi, dword [rcx + 0x20]
mov r14, qword [rsp + 0x18]
xor eax, dword [rsp + 0x28]
mov r10d, dword [rsp + 0x60]
mov dword [rcx + 0x60], eax
movzx eax, sil
xor edi, r8d
xor ebx, r9d
xor r10d, r9d
xor dword [rcx + 0x68], r8d
movzx r9d, r11b
mov r8d, dword [r14 + rax*4]
mov eax, r11d
shr r11d, 0x18
mov r13, qword [rsp + 8]
mov r9d, dword [r12 + r9*4]
mov esi, dword [r15 + r11*4]
movzx eax, ah
mov eax, dword [r13 + rax*4]
xor esi, r9d
xor esi, r8d
movzx r11d, bl
mov dword [rcx + 0x64], r10d
mov r10d, ebx
xor esi, eax
mov dword [rsp + 0x24], eax
shr r10d, 0x18
mov rax, r12
mov r12d, dword [r12 + r11*4]
mov r10d, dword [r15 + r10*4]
movzx ebp, bh
shr ebx, 0x10
movzx r11d, bl
mov ebx, r12d
xor ebx, r10d
xor ebx, dword [r14 + r11*4]
mov r11d, edi
shr r11d, 0x18
mov ebp, dword [r13 + rbp*4]
mov r13d, dword [r15 + r11*4]
mov r11d, edi
shr r11d, 0x10
mov dword [rsp + 0x28], r12d
movzx r11d, r11b
mov r12d, dword [r14 + r11*4]
movzx r11d, dil
mov r14d, dword [rax + r11*4]
xor r9d, dword [rsp + 0x28]
mov r11d, r13d
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x68]
mov eax, edi
shr r9d, 0x18
mov r9d, dword [r15 + r9*4]
movzx edi, ah
xor r10d, r9d
xor r13d, r10d
mov rax, qword [rsp + 8]
mov r10, qword [rsp + 0x70]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
shr r10, 0x10
mov rdi, qword [rsp + 0x18]
and r10d, 0xff
mov r10d, dword [rdi + r10*4]
mov eax, dword [rsp + 0x7c]
xor r8d, r10d
movzx eax, ah
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
xor ebx, ebp
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x24]
movzx edi, byte [rsp + 0x78]
xor eax, ebp
mov rbp, qword [rsp + 0x10]
xor eax, r8d
xor r9d, dword [rbp + rdi*4]
xor r9d, r10d
xor r8d, r9d
mov r9d, ebx
xor r9d, r12d
mov dword [rsp + 0x68], r9d
mov r10d, esi
mov r9d, r13d
xor r10d, r13d
shl r9d, 8
xor r9d, ebx
mov dword [rsp + 0x28], r10d
mov r10d, r11d
xor r10d, eax
and r9d, 0xff000000
mov dword [rsp + 0x78], r10d
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
mov edi, r14d
xor r9d, r11d
xor edi, r8d
and r9d, 0xff0000
or r9d, r10d
mov r10d, eax
shl r10d, 8
xor r10d, r8d
and r10d, 0xff00
or r9d, r10d
mov r10d, r14d
shr r10d, 0x18
xor r10d, esi
movzx r10d, r10b
or r9d, r10d
mov r10d, r9d
mov dword [rsp + 0x70], edi
mov dword [rsp + 0x60], r9d
mov dword [rcx + 0x1c], r9d
mov edi, r13d
mov r9d, r12d
shl edi, 0x10
shl r9d, 0x10
xor edi, r11d
xor r9d, r8d
and r9d, 0xff0000
and edi, 0xff000000
or edi, r9d
mov r9d, eax
shr r9d, 0x10
xor r9d, esi
and r9d, 0xff00
or edi, r9d
mov r9d, r14d
shr r9d, 0x10
shl r13d, 0x18
shr r12d, 8
xor r9d, ebx
xor r13d, r8d
xor r12d, esi
shr eax, 8
and r12d, 0xff0000
movzx r9d, r9b
and r13d, 0xff000000
xor eax, ebx
or edi, r9d
or r13d, r12d
and eax, 0xff00
shr r14d, 8
xor r14d, r11d
or r13d, eax
mov r8d, dword [rcx + 0xc]
mov esi, dword [rcx + 0x14]
movzx r12d, r14b
or r12d, r13d
xor esi, r12d
xor r8d, r10d
mov dword [rcx + 0x24], r12d
xor r12d, dword [rsp + 0x2c]
mov dword [rcx + 0x5c], r12d
mov r12d, r8d
mov r14, qword [rsp + 0x18]
shr r12d, 0x10
movzx eax, r12b
mov eax, dword [r14 + rax*4]
mov ebx, dword [rcx + 0x10]
mov r11d, dword [rsp + 0x48]
xor ebx, edi
xor r11d, r10d
mov dword [rsp + 0x24], eax
movzx r10d, r8b
mov eax, r8d
shr r8d, 0x18
mov r13, qword [rsp + 8]
mov r12d, dword [r15 + r8*4]
mov dword [rcx + 0x20], edi
mov r8d, ebx
xor edi, dword [rsp + 0x40]
shr r8d, 0x18
mov dword [rcx + 0x54], r11d
mov dword [rcx + 0x58], edi
mov r11d, dword [rbp + r10*4]
movzx edi, ah
mov r9d, dword [r13 + rdi*4]
mov r10d, dword [r15 + r8*4]
movzx edi, bh
movzx r8d, bl
shr ebx, 0x10
xor r12d, r11d
movzx ebx, bl
mov edi, dword [r13 + rdi*4]
xor r12d, dword [rsp + 0x24]
mov r8d, dword [rbp + r8*4]
mov ebp, dword [r14 + rbx*4]
mov ebx, esi
shr ebx, 0x18
mov eax, r10d
xor eax, r8d
xor r8d, r11d
mov r11d, ebx
mov ebx, esi
xor ebp, eax
shr ebx, 0x10
xor r12d, r9d
xor ebp, edi
xor r9d, edi
movzx ebx, bl
mov rdi, qword [rsp + 0x10]
mov r13d, dword [r14 + rbx*4]
movzx ebx, sil
mov edi, dword [rdi + rbx*4]
mov r11d, dword [r15 + r11*4]
mov eax, dword [rsp + 0x24]
xor r10d, r11d
xor r11d, edi
xor r11d, r13d
xor eax, r13d
mov ebx, esi
mov r13, qword [rsp + 8]
movzx esi, bh
mov ebx, dword [r13 + rsi*4]
mov rsi, qword [rsp + 0x68]
xor ebx, r11d
mov r11d, dword [rsp + 0x28]
xor r8d, edi
shr r11d, 0x18
mov r11d, dword [r15 + r11*4]
movzx edi, byte [rsp + 0x70]
xor r10d, r11d
shr rsi, 0x10
and esi, 0xff
mov r14d, dword [r14 + rsi*4]
xor eax, r14d
mov dword [rsp + 0x24], eax
mov eax, dword [rsp + 0x78]
movzx esi, ah
mov rax, qword [rsp + 0x10]
mov r13d, dword [r13 + rsi*4]
xor r11d, dword [rax + rdi*4]
xor r11d, r14d
mov esi, r11d
mov r11d, r12d
xor r11d, r10d
mov eax, dword [rsp + 0x24]
mov edi, r11d
mov r11d, ebp
xor r11d, eax
and edi, 0xff000000
and r11d, 0xff0000
xor esi, r13d
or r11d, edi
mov edi, r8d
xor edi, esi
movzx edi, dil
xor r9d, r13d
or r11d, edi
mov edi, ebx
xor edi, r9d
and edi, 0xff00
mov r14d, r11d
or r14d, edi
mov r11d, r10d
mov edi, r8d
shl r11d, 8
shr edi, 0x18
xor r11d, ebp
xor edi, r12d
shl eax, 8
and r11d, 0xff000000
movzx edi, dil
or r11d, edi
mov edi, eax
xor edi, ebx
and edi, 0xff0000
or r11d, edi
mov edi, r9d
shl edi, 8
xor edi, esi
and edi, 0xff00
or r11d, edi
mov r13d, r8d
mov edi, r10d
shl edi, 0x10
mov eax, dword [rsp + 0x24]
shr r13d, 0x10
xor edi, ebx
xor r13d, ebp
shl eax, 0x10
and edi, 0xff000000
movzx r13d, r13b
or edi, r13d
mov r13d, eax
xor r13d, esi
mov eax, dword [rsp + 0x24]
and r13d, 0xff0000
shl r10d, 0x18
shr r8d, 8
or edi, r13d
xor r10d, esi
mov r13d, r9d
xor r8d, ebx
shr eax, 8
shr r13d, 0x10
and r10d, 0xff000000
movzx r8d, r8b
xor eax, r12d
shr r9d, 8
or r10d, r8d
xor r13d, r12d
and eax, 0xff0000
xor r9d, ebp
and r13d, 0xff00
or r10d, eax
and r9d, 0xff00
or edi, r13d
or r10d, r9d
xor r8d, r8d
cmp qword [rsp + 0xe0], 4
mov dword [rcx + 0xc], r14d
mov dword [rcx + 0x10], r11d
mov dword [rsp + 0x28], edi
mov dword [rcx + 0x14], edi
mov dword [rsp + 0x2c], r10d
mov dword [rcx + 0x18], r10d
ja 0x49aab0
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xe0]
dec rax
cmp qword [rsp + 0xe0], 0
je 0x49ab70
lea r10, [rdx + rax + 1]
xor eax, eax
nop word [rax + rax]
movzx r9d, byte [rdx]
shl eax, 8
inc rdx
or eax, r9d
cmp r10, rdx
jne 0x49a1a8
mov dword [rcx], eax
mov dword [rcx + 8], r8d
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rcx + 8]
cmp r8d, 2
je 0x49aae0
jbe 0x498af9
cmp r8d, 3
je 0x49a22a
jmp 0x49a177
add r9d, dword [rsp + 0xe0]
cmp qword [rsp + 0xe0], 0
je 0x49aad0
mov eax, dword [rsp + 0xe0]
lea r8d, [rax - 1]
jmp 0x498a73
cmp r8d, 3
jne 0x49ab80
mov eax, dword [rcx + 0x50]
mov r11d, dword [rcx + 0x30]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x40]
mov ebx, dword [rcx + 0x34]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x38]
lea r15, [0x006fabe0]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x74]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x60]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x64]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x54]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x58]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x5c]
mov dword [rsp + 0x2c], eax
lea rax, [0x006fa7e0]
mov qword [rsp + 0x18], rax
lea rax, [0x006fa3e0]
mov qword [rsp + 8], rax
lea rax, [0x006f9fe0]
mov qword [rsp + 0x10], rax
jmp 0x499a38
mov eax, dword [rcx + 0x2c]
mov r14d, dword [rcx + 0xc]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x1c]
mov r11d, dword [rcx + 0x10]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x14]
lea r15, [0x006fabe0]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x50]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x40]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x34]
mov dword [rsp + 0x64], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x30], eax
lea rax, [0x006fa7e0]
mov qword [rsp + 0x18], rax
lea rax, [0x006fa3e0]
mov qword [rsp + 8], rax
lea rax, [0x006f9fe0]
mov qword [rsp + 0x10], rax
mov r9d, dword [rcx + 0x90]
xor r11d, dword [rcx + 0x78]
mov edi, dword [rsp + 0x2c]
mov ebp, dword [rsp + 0x58]
xor r9d, r11d
mov ebx, dword [rsp + 0x60]
mov esi, dword [rsp + 0x28]
xor ebp, edi
mov eax, dword [rsp + 0x38]
mov r10d, r9d
xor ebx, dword [rcx + 0x84]
mov dword [rcx + 0x50], ebp
shr r10d, 0x10
mov rbp, qword [rsp + 0x18]
mov r12, qword [rsp + 0x10]
xor eax, dword [rsp + 0x24]
xor r14d, esi
mov dword [rsp + 0x60], ebx
mov dword [rcx + 0x1c], ebx
mov r8d, dword [rcx + 0x94]
mov ebx, dword [rcx + 0x98]
movzx r10d, r10b
xor dword [rcx + 0x4c], r14d
mov dword [rsp + 0x48], eax
mov r14d, dword [rbp + r10*4]
mov dword [rcx + 0x2c], eax
movzx r10d, r9b
mov eax, r9d
shr r9d, 0x18
xor ebx, edi
xor r8d, esi
mov edi, dword [r12 + r10*4]
mov rsi, qword [rsp + 8]
mov r13d, dword [r15 + r9*4]
movzx eax, ah
mov eax, dword [rsi + rax*4]
xor r13d, edi
xor r13d, r14d
mov r9d, r8d
xor r13d, eax
shr r9d, 0x18
mov dword [rsp + 0x40], eax
mov eax, r8d
xor dword [rcx + 0x48], r11d
mov dword [rsp + 0x70], r11d
mov dword [rcx + 0x10], r11d
movzx eax, ah
mov r11d, dword [r15 + r9*4]
movzx r9d, r8b
mov dword [rsp + 0x38], r14d
mov r10d, dword [rsi + rax*4]
mov esi, dword [r12 + r9*4]
mov r9d, r11d
xor r9d, esi
shr r8d, 0x10
movzx r8d, r8b
mov r14d, r9d
xor r14d, dword [rbp + r8*4]
mov r8d, ebx
shr r8d, 0x18
mov rax, rbp
mov ebp, dword [r15 + r8*4]
mov r8d, ebx
shr r8d, 0x10
movzx r9d, bl
mov r9d, dword [r12 + r9*4]
movzx r8d, r8b
mov r8d, dword [rax + r8*4]
movzx eax, bh
mov ebx, ebp
xor r11d, ebp
xor ebx, r9d
mov rbp, qword [rsp + 8]
xor ebx, r8d
xor ebx, dword [rbp + rax*4]
mov eax, dword [rsp + 0x24]
xor r9d, esi
xor r9d, edi
mov edi, eax
shr edi, 0x18
mov esi, edi
mov edi, dword [r15 + rsi*4]
mov esi, eax
shr esi, 0x10
mov rax, qword [rsp + 0x18]
movzx esi, sil
mov r12d, dword [rax + rsi*4]
mov eax, dword [rsp + 0x24]
xor r8d, r12d
movzx esi, ah
mov ebp, dword [rbp + rsi*4]
mov rsi, qword [rsp + 0x10]
movzx eax, al
xor r14d, r10d
xor r11d, edi
xor r8d, dword [rsp + 0x38]
xor edi, dword [rsi + rax*4]
xor edi, r12d
mov r12d, r13d
xor r12d, r11d
xor r10d, ebp
xor r10d, dword [rsp + 0x40]
mov esi, edi
mov dword [rsp + 0x40], r12d
mov r12d, r14d
xor esi, ebp
xor r12d, r8d
mov edi, r9d
xor edi, esi
mov dword [rsp + 0x58], r12d
mov eax, ebx
mov r12d, r11d
xor eax, r10d
shl r12d, 8
mov dword [rsp + 0x78], edi
mov edi, r9d
mov dword [rsp + 0x7c], eax
shr edi, 0x18
mov eax, r12d
xor eax, r14d
xor edi, r13d
and eax, 0xff000000
movzx edi, dil
or eax, edi
mov edi, r8d
shl edi, 8
xor edi, ebx
and edi, 0xff0000
or eax, edi
mov edi, r10d
shl edi, 8
xor edi, esi
and edi, 0xff00
or eax, edi
mov ebp, r9d
mov edi, r11d
shl edi, 0x10
shr ebp, 0x10
xor edi, ebx
xor ebp, r14d
and edi, 0xff000000
movzx ebp, bpl
or edi, ebp
mov ebp, r8d
shl ebp, 0x10
xor ebp, esi
and ebp, 0xff0000
shl r11d, 0x18
shr r9d, 8
xor r11d, esi
xor r9d, ebx
shr r8d, 8
xor r8d, r13d
and r11d, 0xff000000
movzx r9d, r9b
or edi, ebp
or r11d, r9d
and r8d, 0xff0000
mov ebp, r10d
shr r10d, 8
or r11d, r8d
xor r14d, r10d
shr ebp, 0x10
xor ebp, r13d
and r14d, 0xff00
mov r8d, dword [rcx + 0x84]
mov ebx, r11d
or ebx, r14d
and ebp, 0xff00
mov r9d, dword [rcx + 0x8c]
mov r12d, edi
or r12d, ebp
xor r8d, eax
mov r14d, ebx
mov dword [rcx + 0x94], eax
xor eax, dword [rsp + 0x34]
xor r9d, r14d
mov dword [rsp + 0x38], r12d
mov dword [rcx + 0x98], r12d
mov dword [rsp + 0x68], ebx
mov dword [rcx + 0xc], ebx
mov dword [rcx + 0x3c], eax
mov ebx, dword [rcx + 0x88]
mov r10d, dword [rsp + 0x50]
xor dword [rcx + 0x44], r14d
mov r14d, r8d
mov rdi, qword [rsp + 0x18]
shr r14d, 0x10
movzx eax, r14b
mov r14d, dword [rdi + rax*4]
mov r11, qword [rsp + 8]
mov eax, r8d
mov rbp, qword [rsp + 0x10]
movzx eax, ah
mov r13d, dword [r11 + rax*4]
xor r10d, r12d
movzx eax, r8b
shr r8d, 0x18
mov esi, dword [r15 + r8*4]
mov dword [rcx + 0x40], r10d
mov r10d, dword [rbp + rax*4]
xor ebx, r12d
xor esi, r10d
mov r12d, esi
mov esi, ebx
shr esi, 0x18
xor r12d, r14d
mov eax, esi
xor r12d, r13d
movzx esi, bh
movzx r8d, bl
mov dword [rsp + 0x24], r13d
shr ebx, 0x10
mov r13d, dword [r15 + rax*4]
movzx ebx, bl
mov rax, rbp
mov ebp, dword [rbp + r8*4]
mov dword [rsp + 0x34], r13d
mov r11d, dword [r11 + rsi*4]
mov r8d, r9d
mov esi, r13d
mov r13d, dword [rdi + rbx*4]
xor esi, ebp
shr r8d, 0x18
xor r13d, esi
mov esi, dword [r15 + r8*4]
mov r8d, r9d
shr r8d, 0x10
movzx r8d, r8b
mov ebx, dword [rdi + r8*4]
movzx r8d, r9b
mov edi, dword [rax + r8*4]
mov eax, r9d
movzx eax, ah
mov r8d, esi
mov r9, rax
xor r8d, edi
mov rax, qword [rsp + 8]
xor r8d, ebx
xor r8d, dword [rax + r9*4]
mov r9d, dword [rsp + 0x40]
mov eax, dword [rsp + 0x34]
shr r9d, 0x18
mov r9d, dword [r15 + r9*4]
xor ebp, r10d
mov r10, qword [rsp + 0x58]
xor eax, r9d
shr r10, 0x10
xor ebp, edi
xor esi, eax
mov rdi, qword [rsp + 0x18]
mov rax, r10
and eax, 0xff
mov eax, dword [rdi + rax*4]
mov r10d, r14d
xor r10d, eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x7c]
xor ebx, r10d
movzx eax, ah
mov r10, rax
mov rax, qword [rsp + 8]
xor r13d, r11d
mov r10d, dword [rax + r10*4]
xor r11d, dword [rsp + 0x24]
movzx edi, byte [rsp + 0x78]
mov r14, qword [rsp + 0x10]
xor r11d, r10d
xor r9d, dword [r14 + rdi*4]
xor r9d, dword [rsp + 0x34]
xor r10d, r9d
mov r9d, r12d
xor r9d, esi
mov dword [rsp + 0x34], r9d
mov r9d, ebp
xor r9d, r10d
mov dword [rsp + 0x58], r9d
mov r9d, esi
shl r9d, 8
mov eax, r9d
xor eax, r13d
mov r14d, r13d
mov r9d, eax
mov eax, ebx
xor r14d, ebx
shl eax, 8
mov dword [rsp + 0x50], r14d
xor eax, r8d
mov r14d, r8d
xor r14d, r11d
and r9d, 0xff000000
and eax, 0xff0000
or eax, r9d
mov r9d, r11d
shl r9d, 8
xor r9d, r10d
and r9d, 0xff00
or eax, r9d
mov dword [rsp + 0x78], r14d
mov r14d, eax
mov eax, esi
shl eax, 0x10
xor eax, r8d
mov edi, eax
mov eax, ebx
shl eax, 0x10
xor eax, r10d
and edi, 0xff000000
and eax, 0xff0000
or eax, edi
mov edi, r11d
shr edi, 0x10
xor edi, r12d
and edi, 0xff00
or eax, edi
mov r9d, ebp
mov edi, ebp
shl esi, 0x18
shr r9d, 0x18
shr edi, 0x10
shr ebx, 8
xor r9d, r12d
xor edi, r13d
xor r10d, esi
xor ebx, r12d
shr r11d, 8
and ebx, 0xff0000
movzx r9d, r9b
and r10d, 0xff000000
xor r11d, r13d
movzx edi, dil
or r14d, r9d
or edi, eax
or r10d, ebx
and r11d, 0xff00
shr ebp, 8
xor r8d, ebp
mov r9d, r14d
mov ebx, dword [rcx + 0x7c]
or r10d, r11d
mov esi, r9d
mov dword [rsp + 0x40], r14d
xor r9d, dword [rcx + 0x78]
mov dword [rcx + 0x88], r14d
movzx r14d, r8b
xor ebx, edi
or r14d, r10d
mov dword [rcx + 0x8c], edi
mov r10d, r9d
xor edi, dword [rsp + 0x64]
shr r10d, 0x10
mov dword [rcx + 0x34], edi
mov r8d, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x18]
movzx eax, r10b
mov r12, qword [rsp + 8]
xor r8d, esi
mov esi, dword [rdi + rax*4]
mov eax, r9d
movzx eax, ah
mov dword [rcx + 0x30], r8d
mov r8d, dword [r12 + rax*4]
mov rax, qword [rsp + 0x10]
movzx r10d, r9b
shr r9d, 0x18
mov r10d, dword [rax + r10*4]
mov ebp, dword [r15 + r9*4]
mov r11d, dword [rcx + 0x80]
xor ebp, r10d
xor r11d, r14d
mov dword [rcx + 0x90], r14d
xor r14d, dword [rsp + 0x30]
mov dword [rcx + 0x38], r14d
mov r14d, ebp
xor r14d, esi
mov dword [rsp + 0x10], esi
movzx esi, bh
mov r13d, dword [r12 + rsi*4]
mov ebp, ebx
shr ebp, 0x18
xor r14d, r8d
mov r9d, ebp
xor r8d, r13d
mov r9d, dword [r15 + r9*4]
mov dword [rsp + 0x24], r8d
movzx r8d, bl
mov r8d, dword [rax + r8*4]
mov esi, r9d
xor esi, r8d
shr ebx, 0x10
xor r8d, r10d
mov r10d, r11d
shr r10d, 0x18
movzx ebx, bl
xor esi, dword [rdi + rbx*4]
mov ebx, dword [r15 + r10*4]
mov r10d, r11d
shr r10d, 0x10
movzx r10d, r10b
xor r13d, esi
mov rbp, rdi
mov esi, dword [rsp + 0x10]
mov edi, dword [rdi + r10*4]
movzx r10d, r11b
xor esi, edi
mov dword [rsp + 0x30], esi
mov esi, dword [rax + r10*4]
xor r9d, ebx
xor r8d, esi
xor ebx, esi
mov esi, dword [rsp + 0x34]
mov qword [rsp + 0x10], rax
mov eax, r11d
shr esi, 0x18
movzx eax, ah
mov r10d, dword [r12 + rax*4]
mov r11d, esi
xor ebx, edi
mov esi, dword [r15 + r11*4]
mov r11, qword [rsp + 0x50]
xor r10d, ebx
mov ebx, dword [rsp + 0x78]
xor r9d, esi
shr r11, 0x10
mov rdi, r12
and r11d, 0xff
movzx ebx, bh
mov r12d, dword [rbp + r11*4]
mov ebp, dword [rdi + rbx*4]
mov r11, qword [rsp + 0x10]
movzx edi, byte [rsp + 0x58]
mov eax, dword [rsp + 0x30]
xor esi, dword [r11 + rdi*4]
xor esi, r12d
xor esi, ebp
xor eax, r12d
mov r11d, esi
mov r12d, r14d
mov esi, r13d
xor r12d, r9d
xor esi, eax
and esi, 0xff0000
and r12d, 0xff000000
or r12d, esi
mov esi, r8d
xor esi, r11d
mov ebx, dword [rsp + 0x24]
movzx esi, sil
xor ebx, ebp
or r12d, esi
mov esi, r10d
xor esi, ebx
and esi, 0xff00
or r12d, esi
mov edi, r9d
mov esi, r8d
shl edi, 8
shr esi, 0x18
xor edi, r13d
xor esi, r14d
and edi, 0xff000000
movzx esi, sil
or edi, esi
mov esi, eax
shl esi, 8
xor esi, r10d
and esi, 0xff0000
or edi, esi
mov esi, ebx
shl esi, 8
xor esi, r11d
and esi, 0xff00
or edi, esi
mov ebp, r8d
mov esi, r9d
shl esi, 0x10
shr ebp, 0x10
xor esi, r10d
xor ebp, r13d
and esi, 0xff000000
movzx ebp, bpl
or esi, ebp
mov ebp, eax
shl ebp, 0x10
xor ebp, r11d
shl r9d, 0x18
shr r8d, 8
and ebp, 0xff0000
xor r9d, r11d
xor r8d, r10d
shr eax, 8
or esi, ebp
and r9d, 0xff000000
mov ebp, ebx
movzx r8d, r8b
xor eax, r14d
shr ebx, 8
or r9d, r8d
and eax, 0xff0000
shr ebp, 0x10
xor ebx, r13d
or r9d, eax
xor ebp, r14d
mov eax, ebx
and ebp, 0xff00
and eax, 0xff00
or esi, ebp
or r9d, eax
cmp qword [rsp + 0xe0], 4
mov dword [rcx + 0x78], r12d
mov dword [rcx + 0x7c], edi
mov dword [rsp + 0x34], esi
mov dword [rcx + 0x80], esi
mov dword [rsp + 0x30], r9d
mov dword [rcx + 0x84], r9d
mov r8d, 1
jbe 0x49a177
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
mov dword [rsp + 0x24], eax
add rdx, 4
jmp 0x498b86
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
mov dword [rsp + 0x24], eax
add rdx, 4
jmp 0x49a329
mov eax, dword [rsp + 0x24]
mov dword [rcx + 4], r9d
mov dword [rcx], eax
jmp 0x49a1c0
mov eax, dword [rcx + 0x74]
mov r13d, dword [rcx + 0x54]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x64]
mov edi, dword [rcx + 0x58]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x5c]
lea r15, [0x006fabe0]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x60]
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 0x98]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x84]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x88]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x78]
mov dword [rsp + 0x64], eax
mov eax, dword [rcx + 0x7c]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0x80]
mov dword [rsp + 0x34], eax
lea rax, [0x006fa7e0]
mov qword [rsp + 0x18], rax
lea rax, [0x006fa3e0]
mov qword [rsp + 8], rax
lea rax, [0x006f9fe0]
mov qword [rsp + 0x10], rax
jmp 0x4992d9
xor eax, eax
jmp 0x49a1ba
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xe0]
dec rax
jmp 0x49a19b