Function at 0x46f1c0
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 r9d, dword [rcx + 4]
mov rax, r8
mov qword [rsp + 0xe0], r8
shl rax, 3
add qword [rcx + 0xa0], rax
mov eax, dword [rcx]
mov dword [rsp + 0x28], eax
cmp r9d, 3
ja 0x470988
mov r8d, 4
sub r8d, r9d
cmp r8, qword [rsp + 0xe0]
ja 0x4709a8
mov r8d, 3
sub r8d, r9d
mov r9d, 4
mov eax, dword [rsp + 0x28]
movzx r10d, byte [rdx]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x28], eax
test r8d, r8d
je 0x46f273
movzx r10d, byte [rdx + 1]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x28], eax
cmp r8d, 1
je 0x46f273
movzx r10d, byte [rdx + 2]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x28], eax
cmp r8d, 2
je 0x46f273
movzx r10d, byte [rdx + 3]
shl eax, 8
or eax, r10d
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0xe0]
lea rdx, [rdx + r8 + 1]
lea r10, [rax - 1]
sub r10, r8
mov qword [rsp + 0xe0], r10
je 0x471270
mov r8d, dword [rcx + 8]
cmp r8d, 2
je 0x471280
ja 0x4709d0
test r8d, r8d
je 0x470a60
mov eax, dword [rcx + 0x98]
mov r12d, dword [rcx + 0x78]
mov edi, dword [rcx + 0x7c]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x88]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x80]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x84]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x2c]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x1c]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x6c], eax
mov eax, dword [rcx + 0x10]
mov dword [rsp + 0x70], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x2c], eax
lea rax, [0x005f3b60]
mov qword [rsp + 0x20], rax
lea rax, [0x005f3760]
mov qword [rsp + 8], rax
lea rax, [0x005f3360]
mov qword [rsp + 0x18], rax
lea rax, [0x005f3f60]
mov qword [rsp + 0x10], rax
mov r15d, dword [rsp + 0x34]
mov r8d, dword [rcx + 0x6c]
mov r9d, dword [rsp + 0x48]
xor edi, dword [rcx + 0x54]
mov eax, dword [rsp + 0x3c]
xor eax, dword [rsp + 0x28]
xor r8d, edi
mov dword [rsp + 0x5c], edi
xor r9d, r15d
mov esi, dword [rsp + 0x40]
mov ebp, dword [rcx + 0x74]
mov dword [rsp + 0x50], eax
xor esi, dword [rcx + 0x60]
mov ebx, dword [rcx + 0x70]
mov dword [rcx + 0x98], eax
mov eax, edi
mov dword [rcx + 0x7c], edi
mov edi, dword [rsp + 0x38]
xor ebp, r15d
mov dword [rsp + 0x60], esi
mov r15, qword [rsp + 0x20]
mov dword [rcx + 0x88], esi
mov esi, r12d
mov r10, qword [rsp + 0x10]
xor ebx, edi
mov dword [rcx + 0x2c], r9d
mov r9d, r8d
xor esi, edi
xor dword [rcx + 0x24], eax
shr r9d, 0x10
mov eax, r8d
xor dword [rcx + 0x28], esi
mov rsi, qword [rsp + 8]
movzx r9d, r9b
movzx eax, ah
mov r13d, dword [r15 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r12d, dword [rsi + rax*4]
mov rax, qword [rsp + 0x18]
mov edi, dword [r10 + r8*4]
mov r8d, ebx
mov r14d, dword [rax + r9*4]
shr r8d, 0x18
movzx eax, bh
mov r11d, dword [r10 + r8*4]
mov r10d, dword [rsi + rax*4]
movzx r8d, bl
shr ebx, 0x10
mov rax, qword [rsp + 0x18]
xor edi, r14d
xor edi, r13d
mov r9d, dword [rax + r8*4]
movzx r8d, bl
mov ebx, r11d
xor edi, r12d
mov esi, dword [r15 + r8*4]
mov r8d, ebp
xor ebx, r9d
shr r8d, 0x18
xor esi, ebx
mov rbx, qword [rsp + 0x10]
xor esi, r10d
mov ebx, dword [rbx + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
xor r11d, ebx
mov r8d, dword [r15 + r8*4]
movzx r15d, bpl
mov r15d, dword [rax + r15*4]
mov eax, ebp
movzx ebp, ah
mov rax, qword [rsp + 8]
xor ebx, r15d
xor r9d, r15d
mov r15, qword [rsp + 0x20]
xor ebx, r8d
xor ebx, dword [rax + rbp*4]
mov eax, dword [rsp + 0x28]
xor r14d, r9d
mov rbp, qword [rsp + 0x10]
mov r9d, eax
shr r9d, 0x18
mov r9d, dword [rbp + r9*4]
mov ebp, eax
movzx eax, ah
shr ebp, 0x10
movzx ebp, bpl
xor r11d, r9d
mov ebp, dword [r15 + rbp*4]
xor r8d, ebp
xor r13d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
movzx eax, byte [rsp + 0x28]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x18]
xor r9d, dword [r12 + rax*4]
mov eax, esi
xor r9d, ebp
xor eax, r13d
mov ebp, r14d
xor r8d, r9d
mov r9d, edi
mov dword [rsp + 0x48], eax
mov eax, ebx
xor r9d, r11d
xor eax, r10d
xor ebp, r8d
mov dword [rsp + 0x40], r9d
mov r9d, r11d
shl r9d, 8
mov dword [rsp + 0x7c], eax
mov eax, r9d
mov r9d, r14d
mov dword [rsp + 0x78], ebp
mov ebp, r14d
shr r9d, 0x18
xor eax, esi
shr ebp, 0x10
xor r9d, edi
and eax, 0xff000000
xor ebp, esi
movzx r9d, r9b
movzx ebp, bpl
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 r9d, r11d
shl r9d, 0x10
mov dword [rcx + 0x70], eax
xor r9d, ebx
and r9d, 0xff000000
or r9d, ebp
mov ebp, r13d
shl ebp, 0x10
xor ebp, r8d
and ebp, 0xff0000
shr r14d, 8
shl r11d, 0x18
xor ebx, r14d
shr r13d, 8
or r9d, ebp
xor r11d, r8d
movzx r14d, bl
xor r13d, edi
mov ebp, r10d
and r11d, 0xff000000
and r13d, 0xff0000
shr ebp, 0x10
mov ebx, dword [rcx + 0x64]
shr r10d, 8
or r11d, r14d
xor ebp, edi
mov edi, dword [rcx + 0x68]
xor r10d, esi
or r11d, r13d
and ebp, 0xff00
mov r14, r15
and r10d, 0xff00
or r9d, ebp
or r11d, r10d
mov dword [rsp + 0x3c], r9d
xor ebx, r9d
mov esi, r11d
mov dword [rsp + 0x68], r11d
movzx ebp, bh
mov dword [rcx + 0x78], r11d
mov r11d, dword [rcx + 0x60]
xor edi, esi
mov dword [rcx + 0x74], r9d
xor r11d, eax
xor eax, dword [rsp + 0x30]
mov dword [rcx + 0x18], eax
mov r10d, dword [rsp + 0x58]
xor dword [rcx + 0x20], esi
mov esi, r11d
mov r13, qword [rsp + 8]
shr esi, 0x10
xor r10d, r9d
movzx r9d, r11b
movzx eax, sil
mov r9d, dword [r12 + r9*4]
mov dword [rcx + 0x1c], r10d
mov r10d, ebx
mov r8d, dword [r15 + rax*4]
mov r15, qword [rsp + 0x10]
mov eax, r11d
shr r11d, 0x18
movzx eax, ah
shr r10d, 0x18
mov ebp, dword [r13 + rbp*4]
mov esi, dword [r15 + r11*4]
mov eax, dword [r13 + rax*4]
movzx r11d, bl
mov r10d, dword [r15 + r10*4]
mov r15d, dword [r12 + r11*4]
xor esi, r9d
mov dword [rsp + 0x28], eax
xor esi, r8d
xor esi, eax
shr ebx, 0x10
mov rax, r12
mov r12, qword [rsp + 0x10]
movzx r11d, bl
mov ebx, r10d
xor r9d, r15d
xor ebx, r15d
xor ebx, dword [r14 + r11*4]
mov r11d, edi
mov r15, qword [rsp + 0x20]
shr r11d, 0x18
xor ebx, ebp
mov r13d, dword [r12 + r11*4]
mov r11d, edi
shr r11d, 0x10
movzx r11d, r11b
mov r12d, dword [r14 + r11*4]
movzx r11d, dil
mov r14d, dword [rax + r11*4]
mov eax, edi
mov r11d, r13d
movzx edi, ah
mov rax, qword [rsp + 8]
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x40]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
mov rdi, qword [rsp + 0x10]
shr r9d, 0x18
mov eax, dword [rsp + 0x7c]
mov r9d, dword [rdi + r9*4]
movzx edi, byte [rsp + 0x78]
movzx eax, ah
xor r10d, r9d
xor r13d, r10d
mov r10, qword [rsp + 0x48]
shr r10, 0x10
and r10d, 0xff
mov r10d, dword [r15 + r10*4]
xor r8d, r10d
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x28]
xor eax, ebp
mov rbp, qword [rsp + 0x18]
xor eax, r8d
xor r9d, dword [rbp + rdi*4]
mov edi, r14d
xor r9d, r10d
mov r10d, esi
xor r8d, r9d
mov r9d, ebx
xor r10d, r13d
xor r9d, r12d
mov dword [rsp + 0x30], r10d
mov r10d, r11d
xor edi, r8d
mov dword [rsp + 0x40], r9d
mov r9d, r13d
xor r10d, eax
shl r9d, 8
mov dword [rsp + 0x58], r10d
xor r9d, ebx
mov dword [rsp + 0x48], edi
mov edi, r13d
and r9d, 0xff000000
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
xor r9d, r11d
and r9d, 0xff0000
shl edi, 0x10
or r9d, r10d
mov r10d, eax
xor edi, r11d
shl r13d, 0x18
shl r10d, 8
and edi, 0xff000000
xor r13d, r8d
xor r10d, r8d
and r13d, 0xff000000
and r10d, 0xff00
or r9d, r10d
mov r10d, r14d
shr r10d, 0x18
xor r10d, esi
movzx r10d, r10b
or r9d, r10d
mov r15d, r9d
mov dword [rcx + 0x64], r9d
mov r9d, r12d
shr r12d, 8
shl r9d, 0x10
xor r12d, esi
xor r9d, r8d
and r12d, 0xff0000
mov r8d, dword [rcx + 0x54]
and r9d, 0xff0000
or r13d, r12d
mov r12d, dword [rsp + 0x6c]
or edi, r9d
mov r9d, eax
shr eax, 8
shr r9d, 0x10
xor eax, ebx
xor r9d, esi
mov esi, dword [rcx + 0x5c]
and r9d, 0xff00
or edi, r9d
mov r9d, r14d
shr r9d, 0x10
xor r9d, ebx
mov ebx, dword [rcx + 0x58]
movzx r9d, r9b
or edi, r9d
and eax, 0xff00
xor r8d, r15d
xor r12d, r15d
shr r14d, 8
mov dword [rcx + 0xc], r12d
mov r12d, r8d
or r13d, eax
xor r11d, r14d
shr r12d, 0x10
mov r14, qword [rsp + 0x20]
xor ebx, edi
movzx eax, r12b
mov dword [rcx + 0x68], edi
movzx ebp, r11b
xor edi, dword [rsp + 0x70]
mov eax, dword [r14 + rax*4]
or ebp, r13d
mov dword [rcx + 0x10], edi
movzx r10d, r8b
xor esi, ebp
mov dword [rcx + 0x6c], ebp
xor ebp, dword [rsp + 0x2c]
mov dword [rsp + 0x28], eax
mov eax, r8d
shr r8d, 0x18
mov r13, qword [rsp + 8]
movzx edi, ah
mov rax, qword [rsp + 0x10]
mov dword [rcx + 0x14], ebp
mov rbp, qword [rsp + 0x18]
mov r9d, dword [r13 + rdi*4]
movzx edi, bh
mov r12d, dword [rax + r8*4]
mov r8d, ebx
mov edi, dword [r13 + rdi*4]
shr r8d, 0x18
mov r11d, dword [rbp + r10*4]
mov r10d, dword [rax + r8*4]
movzx r8d, bl
shr ebx, 0x10
mov r8d, dword [rbp + r8*4]
movzx ebx, bl
xor r12d, r11d
xor r12d, dword [rsp + 0x28]
mov ebp, r10d
xor r12d, r9d
xor r9d, edi
xor ebp, r8d
xor ebp, dword [r14 + rbx*4]
mov ebx, esi
xor r8d, r11d
shr ebx, 0x18
xor ebp, edi
mov r11d, ebx
mov ebx, esi
shr ebx, 0x10
mov r11d, dword [rax + r11*4]
mov rdi, qword [rsp + 0x18]
movzx ebx, bl
mov eax, dword [rsp + 0x28]
mov r13d, dword [r14 + rbx*4]
movzx ebx, sil
xor r10d, r11d
mov edi, dword [rdi + rbx*4]
mov ebx, esi
xor eax, r13d
movzx esi, bh
xor r11d, edi
xor r8d, edi
movzx edi, byte [rsp + 0x48]
xor r11d, r13d
mov r13, qword [rsp + 8]
mov ebx, dword [r13 + rsi*4]
mov rsi, qword [rsp + 0x10]
xor ebx, r11d
mov r11d, dword [rsp + 0x30]
shr r11d, 0x18
mov r11d, dword [rsi + r11*4]
mov rsi, qword [rsp + 0x40]
xor r10d, r11d
shr rsi, 0x10
and esi, 0xff
mov r14d, dword [r14 + rsi*4]
xor eax, r14d
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x58]
movzx esi, ah
mov rax, qword [rsp + 0x18]
mov r13d, dword [r13 + rsi*4]
xor r11d, dword [rax + rdi*4]
mov eax, dword [rsp + 0x28]
xor r11d, r14d
xor r9d, r13d
mov esi, r11d
mov r11d, r12d
xor r11d, r10d
xor esi, r13d
mov r13d, r8d
mov edi, r11d
mov r11d, ebp
xor r11d, eax
and edi, 0xff000000
shl eax, 8
and r11d, 0xff0000
or r11d, edi
mov edi, r8d
xor edi, esi
movzx edi, dil
or r11d, edi
mov edi, ebx
xor edi, r9d
mov r14d, r11d
mov r11d, r10d
and edi, 0xff00
shl r11d, 8
or r14d, edi
mov edi, r8d
xor r11d, ebp
shr edi, 0x18
and r11d, 0xff000000
mov dword [rcx + 0x54], r14d
xor edi, r12d
movzx edi, dil
or r11d, edi
mov edi, eax
mov eax, dword [rsp + 0x28]
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 edi, r10d
shl edi, 0x10
shr r13d, 0x10
mov dword [rcx + 0x58], r11d
shl eax, 0x10
xor edi, ebx
xor r13d, ebp
shl r10d, 0x18
and edi, 0xff000000
movzx r13d, r13b
shr r8d, 8
xor r10d, esi
or edi, r13d
mov r13d, eax
mov eax, dword [rsp + 0x28]
xor r8d, ebx
xor r13d, esi
and r10d, 0xff000000
movzx r8d, r8b
and r13d, 0xff0000
shr eax, 8
or r10d, r8d
mov r8d, 2
or edi, r13d
xor eax, r12d
mov r13d, r9d
shr r9d, 8
and eax, 0xff0000
shr r13d, 0x10
xor r9d, ebp
or r10d, eax
xor r13d, r12d
mov eax, r9d
and r13d, 0xff00
and eax, 0xff00
or edi, r13d
or r10d, eax
cmp qword [rsp + 0xe0], 4
mov dword [rsp + 0x30], edi
mov dword [rcx + 0x5c], edi
mov dword [rsp + 0x2c], r10d
mov dword [rcx + 0x60], r10d
jbe 0x470925
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
add rdx, 4
mov dword [rsp + 0x28], eax
mov r8d, dword [rcx + 0x48]
xor r11d, dword [rcx + 0x30]
xor r15d, dword [rcx + 0x3c]
mov esi, dword [rsp + 0x30]
mov dword [rsp + 0x40], r11d
xor r8d, r11d
mov ebx, dword [rcx + 0x4c]
mov ebp, dword [rcx + 0x50]
mov dword [rsp + 0x48], r15d
mov dword [rcx + 0x64], r15d
mov edi, dword [rsp + 0x50]
mov r9d, r8d
xor r14d, esi
mov r15d, dword [rsp + 0x2c]
mov eax, dword [rsp + 0x3c]
xor ebx, esi
shr r9d, 0x10
xor eax, dword [rsp + 0x28]
mov rsi, qword [rsp + 8]
movzx r9d, r9b
mov dword [rcx + 0x58], r11d
xor ebp, r15d
xor edi, r15d
mov dword [rsp + 0x3c], eax
mov r15, qword [rsp + 0x20]
mov dword [rcx + 0x74], eax
mov eax, r8d
mov r10, qword [rsp + 0x10]
movzx eax, ah
mov r13d, dword [r15 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
mov r12d, dword [rsi + rax*4]
mov rax, qword [rsp + 0x18]
mov dword [rcx + 0x98], edi
mov edi, dword [r10 + r8*4]
mov r8d, ebx
xor dword [rcx + 0x94], r14d
shr r8d, 0x18
mov r14d, dword [rax + r9*4]
movzx eax, bh
xor dword [rcx + 0x90], r11d
mov r11d, dword [r10 + r8*4]
mov r10d, dword [rsi + rax*4]
movzx r8d, bl
shr ebx, 0x10
mov rax, qword [rsp + 0x18]
xor edi, r14d
xor edi, r13d
mov r9d, dword [rax + r8*4]
movzx r8d, bl
mov ebx, r11d
xor edi, r12d
mov esi, dword [r15 + r8*4]
mov r8d, ebp
xor ebx, r9d
shr r8d, 0x18
xor esi, ebx
mov rbx, qword [rsp + 0x10]
xor esi, r10d
mov ebx, dword [rbx + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
xor r11d, ebx
mov r8d, dword [r15 + r8*4]
movzx r15d, bpl
mov r15d, dword [rax + r15*4]
mov eax, ebp
movzx ebp, ah
mov rax, qword [rsp + 8]
xor ebx, r15d
xor r9d, r15d
mov r15, qword [rsp + 0x20]
xor ebx, r8d
xor ebx, dword [rax + rbp*4]
mov eax, dword [rsp + 0x28]
xor r14d, r9d
mov rbp, qword [rsp + 0x10]
mov r9d, eax
shr r9d, 0x18
mov r9d, dword [rbp + r9*4]
mov ebp, eax
movzx eax, ah
shr ebp, 0x10
movzx ebp, bpl
xor r11d, r9d
mov ebp, dword [r15 + rbp*4]
xor r8d, ebp
xor r13d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
movzx eax, byte [rsp + 0x28]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x18]
xor r9d, dword [r12 + rax*4]
mov eax, esi
xor r9d, ebp
xor eax, r13d
mov ebp, r14d
xor r8d, r9d
mov r9d, edi
mov dword [rsp + 0x70], eax
mov eax, ebx
xor r9d, r11d
xor eax, r10d
xor ebp, r8d
mov dword [rsp + 0x6c], r9d
mov r9d, r11d
shl r9d, 8
mov dword [rsp + 0x7c], eax
mov eax, r9d
mov r9d, r14d
mov dword [rsp + 0x78], ebp
mov ebp, r14d
shr r9d, 0x18
xor eax, esi
shr ebp, 0x10
xor r9d, edi
and eax, 0xff000000
xor ebp, esi
movzx r9d, r9b
movzx ebp, bpl
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 r9d, r11d
shl r9d, 0x10
mov dword [rcx + 0x4c], eax
xor r9d, ebx
and r9d, 0xff000000
or r9d, ebp
mov ebp, r13d
shl ebp, 0x10
xor ebp, r8d
and ebp, 0xff0000
shl r11d, 0x18
shr r14d, 8
xor r8d, r11d
shr r13d, 8
or r9d, ebp
xor ebx, r14d
and r8d, 0xff000000
xor r13d, edi
mov ebp, r10d
movzx r14d, bl
and r13d, 0xff0000
shr ebp, 0x10
mov ebx, dword [rcx + 0x40]
shr r10d, 8
or r14d, r8d
xor ebp, edi
mov edi, dword [rcx + 0x44]
xor r10d, esi
or r14d, r13d
and ebp, 0xff00
and r10d, 0xff00
or r9d, ebp
or r14d, r10d
mov r10d, dword [rcx + 0x3c]
mov dword [rsp + 0x50], r9d
xor ebx, r9d
mov dword [rcx + 0x50], r9d
xor edi, r14d
movzx ebp, bh
xor r10d, eax
xor eax, dword [rsp + 0x34]
mov dword [rsp + 0x58], r14d
mov esi, r10d
mov dword [rcx + 0x54], r14d
shr esi, 0x10
mov dword [rcx + 0x84], eax
mov r11d, dword [rsp + 0x60]
movzx eax, sil
mov r13, qword [rsp + 0x10]
xor dword [rcx + 0x8c], r14d
mov r14, r15
mov r8d, dword [r15 + rax*4]
xor r11d, r9d
mov eax, r10d
movzx r9d, r10b
shr r10d, 0x18
mov r15, qword [rsp + 8]
mov r9d, dword [r12 + r9*4]
movzx eax, ah
mov esi, dword [r13 + r10*4]
mov r10d, ebx
mov dword [rcx + 0x88], r11d
movzx r11d, bl
mov eax, dword [r15 + rax*4]
shr r10d, 0x18
mov ebp, dword [r15 + rbp*4]
xor esi, r9d
mov r10d, dword [r13 + r10*4]
mov r15d, dword [r12 + r11*4]
xor esi, r8d
mov dword [rsp + 0x28], eax
xor esi, eax
shr ebx, 0x10
mov rax, r12
xor r9d, r15d
movzx r11d, bl
mov ebx, r10d
xor ebx, r15d
xor ebx, dword [r14 + r11*4]
mov r11d, edi
mov r15, qword [rsp + 0x18]
shr r11d, 0x18
xor ebx, ebp
mov r13d, dword [r13 + r11*4]
mov r11d, edi
shr r11d, 0x10
movzx r11d, r11b
mov r12d, dword [r14 + r11*4]
movzx r11d, dil
mov r14d, dword [rax + r11*4]
mov eax, edi
mov r11d, r13d
movzx edi, ah
mov rax, qword [rsp + 8]
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x6c]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
mov rdi, qword [rsp + 0x10]
shr r9d, 0x18
mov eax, dword [rsp + 0x7c]
mov r9d, dword [rdi + r9*4]
mov rdi, qword [rsp + 0x20]
movzx eax, ah
xor r10d, r9d
xor r13d, r10d
mov r10, qword [rsp + 0x70]
shr r10, 0x10
and r10d, 0xff
mov r10d, dword [rdi + r10*4]
movzx edi, byte [rsp + 0x78]
xor r8d, r10d
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x28]
xor r9d, dword [r15 + rdi*4]
mov r15d, esi
xor r9d, r10d
xor eax, ebp
mov r10d, ebx
mov ebp, r11d
xor eax, r8d
xor r8d, r9d
mov r9d, r14d
xor r10d, r12d
xor r9d, r8d
mov dword [rsp + 0x60], r10d
xor r15d, r13d
xor ebp, eax
mov dword [rsp + 0x6c], r9d
mov r9d, r13d
shl r9d, 8
mov dword [rsp + 0x34], r15d
xor r9d, ebx
mov dword [rsp + 0x70], ebp
mov ebp, dword [rcx + 0x38]
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
and r10d, 0xff000000
xor r9d, r11d
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
mov r15d, r9d
mov r9d, r12d
shr r12d, 8
xor r10d, esi
shl r9d, 0x10
xor r12d, esi
movzx r10d, r10b
xor r9d, r8d
and r12d, 0xff0000
or r15d, r10d
mov r10d, r13d
and r9d, 0xff0000
shl r13d, 0x18
shl r10d, 0x10
xor r13d, r8d
mov r8d, dword [rcx + 0x30]
mov dword [rcx + 0x40], r15d
mov edi, r10d
and r13d, 0xff000000
xor edi, r11d
or r13d, r12d
mov r12, qword [rsp + 0x18]
and edi, 0xff000000
or edi, r9d
mov r9d, eax
shr eax, 8
shr r9d, 0x10
xor eax, ebx
xor r9d, esi
and r9d, 0xff00
or edi, r9d
mov r9d, r14d
shr r9d, 0x10
xor r9d, ebx
mov ebx, dword [rcx + 0x34]
movzx r9d, r9b
or edi, r9d
and eax, 0xff00
shr r14d, 8
xor r8d, r15d
xor r11d, r14d
or r13d, eax
xor ebx, edi
mov dword [rcx + 0x44], edi
movzx esi, r11b
xor edi, dword [rsp + 0x5c]
mov r14, qword [rsp + 0x10]
movzx r10d, r8b
or esi, r13d
mov r13d, r8d
mov dword [rcx + 0x7c], edi
mov rdi, qword [rsp + 0x20]
shr r13d, 0x10
mov r11d, dword [rsp + 0x68]
xor ebp, esi
mov dword [rcx + 0x48], esi
movzx eax, r13b
xor esi, dword [rsp + 0x38]
mov eax, dword [rdi + rax*4]
xor r11d, r15d
mov dword [rcx + 0x80], esi
mov rsi, qword [rsp + 8]
mov dword [rcx + 0x78], r11d
mov dword [rsp + 0x28], eax
mov eax, r8d
shr r8d, 0x18
mov r11d, dword [r12 + r10*4]
mov r13d, dword [r14 + r8*4]
mov r8d, ebx
movzx eax, ah
shr r8d, 0x18
mov r9d, dword [rsi + rax*4]
movzx eax, bh
mov r10d, dword [r14 + r8*4]
movzx r8d, bl
shr ebx, 0x10
mov esi, dword [rsi + rax*4]
mov r8d, dword [r12 + r8*4]
mov rax, r12
movzx ebx, bl
xor r13d, r11d
mov r12d, r10d
xor r13d, dword [rsp + 0x28]
xor r12d, r8d
xor r12d, dword [rdi + rbx*4]
mov ebx, ebp
xor r8d, r11d
shr ebx, 0x10
mov r11d, ebp
xor r13d, r9d
xor r12d, esi
shr r11d, 0x18
movzx ebx, bl
xor r9d, esi
mov r11d, dword [r14 + r11*4]
mov r14, rdi
mov edi, dword [rdi + rbx*4]
movzx ebx, bpl
mov ebx, dword [rax + rbx*4]
mov esi, dword [rsp + 0x28]
mov eax, ebp
xor r10d, r11d
movzx ebp, ah
xor r11d, ebx
xor esi, edi
xor r8d, ebx
mov rbx, qword [rsp + 0x60]
xor r11d, edi
mov rdi, qword [rsp + 8]
mov dword [rsp + 0x28], esi
mov eax, dword [rsp + 0x28]
mov esi, dword [rdi + rbp*4]
mov rbp, qword [rsp + 0x10]
xor esi, r11d
mov r11d, dword [rsp + 0x34]
shr r11d, 0x18
mov r11d, dword [rbp + r11*4]
xor r10d, r11d
shr rbx, 0x10
and ebx, 0xff
mov r14d, dword [r14 + rbx*4]
mov ebx, dword [rsp + 0x70]
movzx ebx, bh
xor eax, r14d
mov ebp, dword [rdi + rbx*4]
movzx ebx, byte [rsp + 0x6c]
mov rdi, qword [rsp + 0x18]
xor r9d, ebp
xor r11d, dword [rdi + rbx*4]
xor r11d, r14d
mov r14d, r8d
mov edi, r11d
mov r11d, r13d
xor r11d, r10d
xor edi, ebp
mov ebp, r8d
mov ebx, r11d
mov r11d, r12d
shr ebp, 0x18
xor r11d, eax
and ebx, 0xff000000
xor ebp, r13d
and r11d, 0xff0000
movzx ebp, bpl
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 ebx, r10d
shl ebx, 8
mov dword [rcx + 0x30], r11d
xor ebx, r12d
and ebx, 0xff000000
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 ebp, r10d
shl ebp, 0x10
shr r14d, 0x10
mov dword [rcx + 0x34], ebx
shl r10d, 0x18
xor ebp, esi
xor r14d, r12d
shr r8d, 8
and ebp, 0xff000000
movzx r14d, r14b
xor r10d, edi
xor r8d, esi
or ebp, r14d
mov r14d, eax
shr eax, 8
movzx r8d, r8b
shl r14d, 0x10
and r10d, 0xff000000
xor eax, r13d
xor r14d, edi
or r10d, r8d
and eax, 0xff0000
mov r8d, 3
and r14d, 0xff0000
or r10d, eax
or ebp, r14d
mov r14d, r9d
shr r9d, 8
shr r14d, 0x10
xor r9d, r12d
xor r14d, r13d
mov eax, r9d
and r14d, 0xff00
and eax, 0xff00
or ebp, r14d
or r10d, eax
cmp qword [rsp + 0xe0], 4
mov dword [rsp + 0x34], ebp
mov dword [rcx + 0x38], ebp
mov dword [rsp + 0x38], r10d
mov dword [rcx + 0x3c], r10d
jbe 0x470925
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
add rdx, 4
mov dword [rsp + 0x28], eax
mov edi, dword [rsp + 0x38]
mov r8d, dword [rcx + 0x24]
mov r9d, dword [rsp + 0x3c]
xor ebx, dword [rcx + 0xc]
mov eax, dword [rsp + 0x50]
xor eax, dword [rsp + 0x28]
xor r8d, ebx
mov dword [rsp + 0x5c], ebx
mov esi, dword [rsp + 0x34]
xor r9d, edi
xor r15d, dword [rcx + 0x18]
mov dword [rsp + 0x50], eax
mov dword [rcx + 0x50], eax
mov eax, ebx
mov r10, qword [rsp + 0x10]
mov dword [rcx + 0x34], ebx
mov ebx, dword [rcx + 0x28]
xor r11d, esi
mov dword [rcx + 0x74], r9d
mov r9d, r8d
mov ebp, dword [rcx + 0x2c]
xor ebx, esi
xor dword [rcx + 0x6c], eax
mov rsi, qword [rsp + 8]
shr r9d, 0x10
mov dword [rsp + 0x60], r15d
mov eax, r8d
movzx r9d, r9b
xor ebp, edi
mov dword [rcx + 0x40], r15d
mov r15, qword [rsp + 0x20]
movzx eax, ah
mov r12d, dword [rsi + rax*4]
mov rax, qword [rsp + 0x18]
mov r13d, dword [r15 + r9*4]
movzx r9d, r8b
shr r8d, 0x18
xor dword [rcx + 0x70], r11d
mov edi, dword [r10 + r8*4]
mov r8d, ebx
mov r14d, dword [rax + r9*4]
movzx eax, bh
shr r8d, 0x18
mov r11d, dword [r10 + r8*4]
mov r10d, dword [rsi + rax*4]
movzx r8d, bl
shr ebx, 0x10
mov rax, qword [rsp + 0x18]
movzx ebx, bl
xor edi, r14d
xor edi, r13d
mov r9d, dword [rax + r8*4]
mov esi, dword [r15 + rbx*4]
mov r8d, r11d
xor edi, r12d
mov rbx, qword [rsp + 0x10]
xor r8d, r9d
xor esi, r8d
mov r8d, ebp
shr r8d, 0x18
xor esi, r10d
mov ebx, dword [rbx + r8*4]
mov r8d, ebp
shr r8d, 0x10
movzx r8d, r8b
xor r11d, ebx
mov r8d, dword [r15 + r8*4]
movzx r15d, bpl
mov r15d, dword [rax + r15*4]
mov eax, ebp
movzx ebp, ah
mov rax, qword [rsp + 8]
xor ebx, r15d
xor r9d, r15d
mov r15, qword [rsp + 0x20]
xor ebx, r8d
xor ebx, dword [rax + rbp*4]
mov eax, dword [rsp + 0x28]
xor r14d, r9d
mov rbp, qword [rsp + 0x10]
mov r9d, eax
shr r9d, 0x18
mov r9d, dword [rbp + r9*4]
mov ebp, eax
movzx eax, ah
shr ebp, 0x10
movzx ebp, bpl
xor r11d, r9d
mov ebp, dword [r15 + rbp*4]
xor r8d, ebp
xor r13d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
movzx eax, byte [rsp + 0x28]
xor r10d, r8d
xor r10d, r12d
mov r12, qword [rsp + 0x18]
xor r9d, dword [r12 + rax*4]
mov eax, esi
xor r9d, ebp
xor eax, r13d
mov ebp, r14d
xor r8d, r9d
mov r9d, edi
mov dword [rsp + 0x70], eax
mov eax, ebx
xor r9d, r11d
xor eax, r10d
xor ebp, r8d
mov dword [rsp + 0x6c], r9d
mov r9d, r11d
shl r9d, 8
mov dword [rsp + 0x7c], eax
mov eax, r9d
mov r9d, r14d
mov dword [rsp + 0x78], ebp
mov ebp, r14d
shr r9d, 0x18
xor eax, esi
shr ebp, 0x10
xor r9d, edi
and eax, 0xff000000
xor ebp, esi
movzx r9d, r9b
movzx ebp, bpl
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 r9d, r11d
shl r9d, 0x10
mov dword [rcx + 0x28], eax
xor r9d, ebx
and r9d, 0xff000000
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
mov ebp, r10d
shr r13d, 8
xor ebx, r14d
mov r11d, dword [rcx + 0x18]
shr ebp, 0x10
movzx r14d, bl
xor r13d, edi
and r8d, 0xff000000
xor ebp, edi
shr r10d, 8
or r8d, r14d
xor r11d, eax
and ebp, 0xff00
and r13d, 0xff0000
xor r10d, esi
or r9d, ebp
mov esi, r11d
or r8d, r13d
and r10d, 0xff00
shr esi, 0x10
mov ebx, dword [rcx + 0x1c]
or r8d, r10d
xor eax, dword [rsp + 0x2c]
mov dword [rsp + 0x3c], r9d
mov r14, r15
mov dword [rcx + 0x2c], r9d
mov edi, dword [rcx + 0x20]
xor ebx, r9d
mov dword [rsp + 0x68], r8d
movzx ebp, bh
mov dword [rcx + 0x30], r8d
xor edi, r8d
mov dword [rcx + 0x60], eax
mov r10d, dword [rsp + 0x48]
movzx eax, sil
mov r13, qword [rsp + 0x10]
xor dword [rcx + 0x68], r8d
xor r10d, r9d
mov r8d, dword [r15 + rax*4]
movzx r9d, r11b
mov eax, r11d
shr r11d, 0x18
mov r15, qword [rsp + 8]
mov r9d, dword [r12 + r9*4]
movzx eax, ah
mov esi, dword [r13 + r11*4]
mov dword [rcx + 0x64], r10d
mov r10d, ebx
movzx r11d, bl
mov eax, dword [r15 + rax*4]
shr r10d, 0x18
mov ebp, dword [r15 + rbp*4]
xor esi, r9d
mov r10d, dword [r13 + r10*4]
mov r15d, dword [r12 + r11*4]
xor esi, r8d
mov dword [rsp + 0x28], eax
xor esi, eax
shr ebx, 0x10
mov rax, r12
xor r9d, r15d
movzx r11d, bl
mov ebx, r10d
xor ebx, r15d
xor ebx, dword [r14 + r11*4]
mov r11d, edi
mov r15, qword [rsp + 0x18]
shr r11d, 0x18
xor ebx, ebp
mov r13d, dword [r13 + r11*4]
mov r11d, edi
shr r11d, 0x10
movzx r11d, r11b
mov r12d, dword [r14 + r11*4]
movzx r11d, dil
mov r14d, dword [rax + r11*4]
mov eax, edi
mov r11d, r13d
movzx edi, ah
mov rax, qword [rsp + 8]
xor r11d, r14d
xor r14d, r9d
mov r9d, dword [rsp + 0x6c]
xor r11d, r12d
xor r11d, dword [rax + rdi*4]
mov rdi, qword [rsp + 0x10]
shr r9d, 0x18
mov eax, dword [rsp + 0x7c]
mov r9d, dword [rdi + r9*4]
mov rdi, qword [rsp + 0x20]
movzx eax, ah
xor r10d, r9d
xor r13d, r10d
mov r10, qword [rsp + 0x70]
shr r10, 0x10
and r10d, 0xff
mov r10d, dword [rdi + r10*4]
movzx edi, byte [rsp + 0x78]
xor r8d, r10d
xor r12d, r8d
mov r8, rax
mov rax, qword [rsp + 8]
mov r8d, dword [rax + r8*4]
mov eax, dword [rsp + 0x28]
xor r9d, dword [r15 + rdi*4]
mov r15d, esi
mov edi, r13d
xor r9d, r10d
xor eax, ebp
mov r10d, ebx
mov ebp, r11d
xor eax, r8d
xor r8d, r9d
mov r9d, r14d
xor r10d, r12d
xor r9d, r8d
mov dword [rsp + 0x48], r10d
xor r15d, r13d
xor ebp, eax
mov dword [rsp + 0x6c], r9d
mov r9d, r13d
shl r9d, 8
mov dword [rsp + 0x2c], r15d
xor r9d, ebx
mov dword [rsp + 0x70], ebp
mov ebp, dword [rcx + 0x14]
mov r10d, r9d
mov r9d, r12d
shl r9d, 8
and r10d, 0xff000000
xor r9d, r11d
and r9d, 0xff0000
shl edi, 0x10
or r9d, r10d
mov r10d, eax
xor edi, r11d
shl r13d, 0x18
shl r10d, 8
and edi, 0xff000000
xor r13d, r8d
xor r10d, r8d
and r13d, 0xff000000
and r10d, 0xff00
or r9d, r10d
mov r10d, r14d
mov r15d, r9d
mov r9d, r12d
shr r10d, 0x18
shl r9d, 0x10
xor r10d, esi
shr r12d, 8
xor r9d, r8d
xor r12d, esi
mov r8d, dword [rcx + 0xc]
movzx r10d, r10b
and r9d, 0xff0000
or r15d, r10d
and r12d, 0xff0000
or edi, r9d
mov r9d, eax
shr eax, 8
or r13d, r12d
shr r9d, 0x10
xor eax, ebx
mov r12, qword [rsp + 0x18]
mov dword [rcx + 0x1c], r15d
xor r9d, esi
mov esi, dword [rsp + 0x58]
and r9d, 0xff00
or edi, r9d
mov r9d, r14d
shr r9d, 0x10
xor r9d, ebx
mov ebx, dword [rcx + 0x10]
movzx r9d, r9b
or edi, r9d
and eax, 0xff00
xor r8d, r15d
xor esi, r15d
xor ebx, edi
mov dword [rcx + 0x20], edi
xor edi, dword [rsp + 0x40]
shr r14d, 8
mov dword [rcx + 0x54], esi
mov esi, r8d
or r13d, eax
xor r11d, r14d
shr esi, 0x10
mov dword [rcx + 0x58], edi
mov rdi, qword [rsp + 0x20]
movzx r11d, r11b
movzx eax, sil
mov r14, qword [rsp + 0x10]
or r13d, r11d
movzx r10d, r8b
mov eax, dword [rdi + rax*4]
xor ebp, r13d
mov rsi, qword [rsp + 8]
mov dword [rcx + 0x24], r13d
xor r13d, dword [rsp + 0x30]
mov r11d, dword [r12 + r10*4]
mov dword [rsp + 0x28], eax
mov eax, r8d
shr r8d, 0x18
mov dword [rcx + 0x5c], r13d
mov r13d, dword [r14 + r8*4]
mov r8d, ebx
movzx eax, ah
shr r8d, 0x18
mov r9d, dword [rsi + rax*4]
movzx eax, bh
mov r10d, dword [r14 + r8*4]
movzx r8d, bl
shr ebx, 0x10
mov esi, dword [rsi + rax*4]
mov r8d, dword [r12 + r8*4]
mov rax, r12
movzx ebx, bl
xor r13d, r11d
mov r12d, r10d
xor r13d, dword [rsp + 0x28]
xor r12d, r8d
xor r12d, dword [rdi + rbx*4]
mov ebx, ebp
xor r8d, r11d
shr ebx, 0x10
mov r11d, ebp
xor r13d, r9d
xor r12d, esi
shr r11d, 0x18
movzx ebx, bl
xor r9d, esi
mov r11d, dword [r14 + r11*4]
mov r14, rdi
mov edi, dword [rdi + rbx*4]
movzx ebx, bpl
mov ebx, dword [rax + rbx*4]
mov esi, dword [rsp + 0x28]
mov eax, ebp
xor r10d, r11d
movzx ebp, ah
xor r11d, ebx
xor esi, edi
xor r8d, ebx
mov rbx, qword [rsp + 0x48]
xor r11d, edi
mov rdi, qword [rsp + 8]
mov dword [rsp + 0x28], esi
mov eax, dword [rsp + 0x28]
mov esi, dword [rdi + rbp*4]
mov rbp, qword [rsp + 0x10]
xor esi, r11d
mov r11d, dword [rsp + 0x2c]
shr r11d, 0x18
mov r11d, dword [rbp + r11*4]
xor r10d, r11d
shr rbx, 0x10
and ebx, 0xff
mov r14d, dword [r14 + rbx*4]
mov ebx, dword [rsp + 0x70]
movzx ebx, bh
xor eax, r14d
mov ebp, dword [rdi + rbx*4]
movzx ebx, byte [rsp + 0x6c]
mov rdi, qword [rsp + 0x18]
xor r9d, ebp
xor r11d, dword [rdi + rbx*4]
mov ebx, r13d
xor r11d, r14d
xor ebx, r10d
mov r14d, r8d
mov edi, r11d
mov r11d, r12d
and ebx, 0xff000000
xor r11d, eax
xor edi, ebp
mov ebp, r8d
and r11d, 0xff0000
shr ebp, 0x18
or ebx, r11d
mov r11d, r8d
xor ebp, r13d
xor r11d, edi
movzx ebp, bpl
movzx r11d, r11b
or ebx, r11d
mov r11d, esi
xor r11d, r9d
and r11d, 0xff00
or ebx, r11d
mov r11d, r10d
shl r11d, 8
mov dword [rcx + 0xc], ebx
xor r11d, r12d
and r11d, 0xff000000
or r11d, ebp
mov ebp, eax
shl ebp, 8
xor ebp, esi
and ebp, 0xff0000
or r11d, ebp
mov ebp, r9d
shl ebp, 8
xor ebp, edi
and ebp, 0xff00
or r11d, ebp
mov ebp, r10d
shl ebp, 0x10
shr r14d, 0x10
mov dword [rcx + 0x10], r11d
shl r10d, 0x18
xor ebp, esi
xor r14d, r12d
shr r8d, 8
and ebp, 0xff000000
movzx r14d, r14b
xor r10d, edi
xor r8d, esi
or ebp, r14d
mov r14d, eax
shr eax, 8
movzx r8d, r8b
shl r14d, 0x10
and r10d, 0xff000000
xor eax, r13d
xor r14d, edi
or r10d, r8d
and eax, 0xff0000
xor r8d, r8d
and r14d, 0xff0000
or r10d, eax
or ebp, r14d
mov r14d, r9d
shr r9d, 8
shr r14d, 0x10
xor r9d, r12d
xor r14d, r13d
and r9d, 0xff00
and r14d, 0xff00
or r10d, r9d
or ebp, r14d
mov dword [rsp + 0x30], r10d
cmp qword [rsp + 0xe0], 4
mov dword [rsp + 0x2c], ebp
mov dword [rcx + 0x14], ebp
mov dword [rcx + 0x18], r10d
ja 0x471250
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xe0]
sub rax, 1
cmp qword [rsp + 0xe0], 0
je 0x471310
lea r10, [rdx + rax + 1]
xor eax, eax
nop dword [rax]
movzx r9d, byte [rdx]
shl eax, 8
add rdx, 1
or eax, r9d
cmp r10, rdx
jne 0x470958
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 0x471280
jbe 0x46f2a9
cmp r8d, 3
je 0x4709da
jmp 0x470925
add r9d, dword [rsp + 0xe0]
cmp qword [rsp + 0xe0], 0
je 0x471270
mov eax, dword [rsp + 0xe0]
lea r8d, [rax - 1]
jmp 0x46f223
cmp r8d, 3
jne 0x471320
mov eax, dword [rcx + 0x50]
mov r11d, dword [rcx + 0x30]
mov ebx, dword [rcx + 0x34]
mov r15d, dword [rcx + 0x40]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x74]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x60]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x64]
mov dword [rsp + 0x48], eax
mov eax, dword [rcx + 0x54]
mov dword [rsp + 0x58], eax
mov eax, dword [rcx + 0x58]
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x5c]
mov dword [rsp + 0x30], eax
lea rax, [0x005f3b60]
mov qword [rsp + 0x20], rax
lea rax, [0x005f3760]
mov qword [rsp + 8], rax
lea rax, [0x005f3360]
mov qword [rsp + 0x18], rax
lea rax, [0x005f3f60]
mov qword [rsp + 0x10], rax
jmp 0x4701fb
mov eax, dword [rcx + 0x2c]
mov ebx, dword [rcx + 0xc]
mov r11d, dword [rcx + 0x10]
mov r15d, dword [rcx + 0x1c]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x14]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x18]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x50]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x3c]
mov dword [rsp + 0x38], eax
mov eax, dword [rcx + 0x40]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x30]
mov dword [rsp + 0x68], eax
mov eax, dword [rcx + 0x34]
mov dword [rsp + 0x5c], eax
mov eax, dword [rcx + 0x38]
mov dword [rsp + 0x34], eax
lea rax, [0x005f3b60]
mov qword [rsp + 0x20], rax
lea rax, [0x005f3760]
mov qword [rsp + 8], rax
lea rax, [0x005f3360]
mov qword [rsp + 0x18], rax
lea rax, [0x005f3f60]
mov qword [rsp + 0x10], rax
mov r9d, dword [rcx + 0x90]
xor r11d, dword [rcx + 0x78]
mov edi, dword [rsp + 0x2c]
mov r8d, dword [rcx + 0x94]
mov dword [rsp + 0x70], r11d
xor r9d, r11d
mov eax, dword [rsp + 0x3c]
xor eax, dword [rsp + 0x28]
mov dword [rcx + 0x10], r11d
xor r15d, dword [rcx + 0x84]
xor r8d, edi
xor ebx, edi
mov dword [rsp + 0x48], eax
mov rdi, qword [rsp + 8]
mov esi, dword [rcx + 0x98]
mov dword [rcx + 0x2c], eax
mov r10d, r9d
mov dword [rsp + 0x58], r15d
mov ebp, dword [rsp + 0x50]
mov eax, r9d
shr r10d, 0x10
mov dword [rcx + 0x1c], r15d
mov r15d, dword [rsp + 0x30]
movzx eax, ah
movzx r10d, r10b
xor dword [rcx + 0x4c], ebx
mov rbx, qword [rsp + 0x20]
xor esi, r15d
mov r13, qword [rsp + 0x18]
xor ebp, r15d
mov r15d, dword [rdi + rax*4]
mov rax, qword [rsp + 0x10]
mov r14d, dword [rbx + r10*4]
movzx r10d, r9b
shr r9d, 0x18
mov dword [rcx + 0x50], ebp
mov ebp, dword [r13 + r10*4]
mov r10d, dword [rax + r9*4]
xor dword [rcx + 0x48], r11d
xor r10d, ebp
mov r9d, r10d
xor r9d, r14d
xor r9d, r15d
mov r12d, r9d
mov r9d, r8d
shr r9d, 0x18
mov r11d, dword [rax + r9*4]
mov eax, r8d
movzx r9d, r8b
shr r8d, 0x10
movzx eax, ah
movzx r8d, r8b
mov r10d, dword [rdi + rax*4]
mov edi, dword [r13 + r9*4]
mov r9d, r11d
mov rax, rbx
xor r9d, edi
mov r13d, r9d
xor r13d, dword [rbx + r8*4]
mov rbx, qword [rsp + 0x10]
mov r8d, esi
shr r8d, 0x18
movzx r9d, sil
xor r13d, r10d
mov ebx, dword [rbx + r8*4]
mov r8d, esi
shr r8d, 0x10
movzx r8d, r8b
xor r11d, ebx
mov r8d, dword [rax + r8*4]
mov rax, qword [rsp + 0x18]
mov r9d, dword [rax + r9*4]
mov eax, esi
movzx esi, ah
mov rax, qword [rsp + 8]
xor ebx, r9d
xor r9d, edi
xor ebx, r8d
xor ebx, dword [rax + rsi*4]
mov eax, dword [rsp + 0x28]
xor r9d, ebp
mov rbp, qword [rsp + 0x10]
mov esi, eax
shr esi, 0x18
mov edi, dword [rbp + rsi*4]
mov esi, eax
mov ebp, eax
mov rax, qword [rsp + 0x20]
shr esi, 0x10
movzx esi, sil
xor r11d, edi
mov esi, dword [rax + rsi*4]
mov eax, ebp
movzx ebp, ah
movzx eax, al
xor r8d, esi
xor r8d, r14d
mov r14, qword [rsp + 8]
mov ebp, dword [r14 + rbp*4]
xor r10d, ebp
xor r10d, r15d
mov r15, qword [rsp + 0x18]
xor edi, dword [r15 + rax*4]
mov eax, r13d
xor edi, esi
xor eax, r8d
mov esi, edi
mov edi, r12d
mov dword [rsp + 0x50], eax
mov eax, ebx
xor edi, r11d
xor esi, ebp
mov ebp, r11d
xor eax, r10d
mov dword [rsp + 0x40], edi
mov edi, r9d
shl ebp, 8
xor edi, esi
mov dword [rsp + 0x7c], eax
mov eax, ebp
mov ebp, r9d
mov dword [rsp + 0x78], edi
mov edi, r9d
xor eax, r13d
shr ebp, 0x10
shr edi, 0x18
and eax, 0xff000000
xor ebp, r13d
xor edi, r12d
movzx ebp, bpl
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 edi, r11d
shl edi, 0x10
mov dword [rcx + 0x94], eax
xor edi, ebx
and edi, 0xff000000
or edi, ebp
mov ebp, r8d
shl ebp, 0x10
xor ebp, esi
and ebp, 0xff0000
shl r11d, 0x18
shr r9d, 8
or edi, ebp
xor r11d, esi
mov ebp, r10d
xor r9d, ebx
shr ebp, 0x10
and r11d, 0xff000000
mov ebx, dword [rcx + 0x8c]
shr r8d, 8
movzx r9d, r9b
xor ebp, r12d
shr r10d, 8
or r11d, r9d
xor r8d, r12d
mov r9d, dword [rcx + 0x84]
xor r13d, r10d
and ebp, 0xff00
and r8d, 0xff0000
mov r10d, dword [rsp + 0x60]
and r13d, 0xff00
or edi, ebp
xor r9d, eax
or r11d, r8d
mov r8d, dword [rcx + 0x88]
or r11d, r13d
xor eax, dword [rsp + 0x38]
xor r10d, edi
mov esi, r9d
xor r8d, edi
shr esi, 0x10
mov dword [rsp + 0x3c], edi
xor ebx, r11d
mov dword [rcx + 0x98], edi
mov dword [rsp + 0x6c], r11d
mov dword [rcx + 0xc], r11d
mov dword [rcx + 0x3c], eax
movzx eax, sil
mov rsi, r14
mov dword [rcx + 0x40], r10d
mov rdi, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x10]
xor dword [rcx + 0x44], r11d
mov r13d, dword [rdi + rax*4]
mov eax, r9d
movzx eax, ah
mov r10d, dword [r14 + rax*4]
movzx eax, r9b
shr r9d, 0x18
mov r14, r15
mov r11d, dword [r15 + rax*4]
mov r15d, dword [rbp + r9*4]
movzx r9d, r8b
mov dword [rsp + 0x28], r10d
mov r9d, dword [r14 + r9*4]
xor r15d, r11d
xor r15d, r13d
xor r15d, r10d
mov r10d, r8d
shr r10d, 0x18
mov eax, r10d
mov r10d, dword [rbp + rax*4]
mov eax, r8d
shr r8d, 0x10
movzx r8d, r8b
movzx eax, ah
mov r12d, r10d
mov esi, dword [rsi + rax*4]
mov rax, rdi
xor r12d, r9d
xor r12d, dword [rdi + r8*4]
mov r8d, ebx
xor r9d, r11d
shr r8d, 0x18
xor r12d, esi
mov dword [rsp + 0x38], esi
movzx esi, bl
mov edi, dword [rbp + r8*4]
mov r8d, ebx
mov ebp, dword [r14 + rsi*4]
movzx ebx, bh
shr r8d, 0x10
mov r14, qword [rsp + 8]
mov r11d, dword [rsp + 0x40]
movzx r8d, r8b
mov esi, edi
xor r9d, ebp
mov r8d, dword [rax + r8*4]
xor esi, ebp
mov rbp, qword [rsp + 0x10]
shr r11d, 0x18
xor esi, r8d
xor esi, dword [r14 + rbx*4]
mov rbx, qword [rsp + 0x50]
mov r11d, dword [rbp + r11*4]
movzx ebp, byte [rsp + 0x78]
shr rbx, 0x10
and ebx, 0xff
xor r10d, r11d
mov ebx, dword [rax + rbx*4]
mov eax, dword [rsp + 0x7c]
xor r10d, edi
xor r13d, ebx
movzx edi, ah
mov eax, dword [rsp + 0x38]
xor eax, dword [rsp + 0x28]
xor r8d, r13d
mov edi, dword [r14 + rdi*4]
mov r13, r14
mov r14, qword [rsp + 0x18]
xor r11d, dword [r14 + rbp*4]
xor eax, edi
xor r11d, ebx
mov ebx, r15d
xor ebx, r10d
xor edi, r11d
mov r11d, r9d
mov dword [rsp + 0x38], ebx
mov ebx, r12d
xor r11d, edi
xor ebx, r8d
mov dword [rsp + 0x50], ebx
mov ebx, esi
mov dword [rsp + 0x60], r11d
mov r11d, r10d
xor ebx, eax
shl r11d, 8
mov dword [rsp + 0x78], ebx
xor r11d, r12d
and r11d, 0xff000000
mov ebx, r11d
mov r11d, r8d
shl r11d, 8
xor r11d, esi
and r11d, 0xff0000
or r11d, ebx
mov ebx, eax
shl ebx, 8
xor ebx, edi
and ebx, 0xff00
or r11d, ebx
mov ebx, r9d
shr ebx, 0x18
xor ebx, r15d
movzx ebx, bl
or r11d, ebx
mov ebx, r11d
mov dword [rsp + 0x40], r11d
mov dword [rcx + 0x88], r11d
mov r11d, r10d
shl r10d, 0x18
shl r11d, 0x10
xor r11d, esi
and r11d, 0xff000000
mov ebp, r11d
mov r11d, r8d
shr r8d, 8
shl r11d, 0x10
xor r8d, r15d
xor r11d, edi
xor edi, r10d
and r8d, 0xff0000
and r11d, 0xff0000
and edi, 0xff000000
or r11d, ebp
mov ebp, eax
shr eax, 8
or edi, r8d
shr ebp, 0x10
xor eax, r12d
xor ebp, r15d
mov r15d, ebx
and ebp, 0xff00
or r11d, ebp
mov ebp, r9d
shr ebp, 0x10
xor ebp, r12d
mov r12, r13
movzx ebp, bpl
or ebp, r11d
and eax, 0xff00
shr r9d, 8
mov r11, r14
xor r9d, esi
mov esi, dword [rcx + 0x7c]
or edi, eax
mov dword [rcx + 0x8c], ebp
movzx r8d, r9b
mov r9d, dword [rcx + 0x78]
xor esi, ebp
or edi, r8d
mov r8d, dword [rsp + 0x68]
xor ebp, dword [rsp + 0x5c]
xor r9d, ebx
mov ebx, esi
mov esi, dword [rcx + 0x80]
mov dword [rcx + 0x34], ebp
mov dword [rcx + 0x90], edi
mov eax, r9d
xor r8d, r15d
mov rbp, qword [rsp + 0x10]
xor esi, edi
xor edi, dword [rsp + 0x34]
shr eax, 0x10
mov dword [rcx + 0x30], r8d
mov dword [rcx + 0x38], edi
mov rdi, qword [rsp + 0x20]
movzx eax, al
movzx r8d, r9b
mov r10d, dword [r14 + r8*4]
mov r8d, ebx
mov eax, dword [rdi + rax*4]
shr r8d, 0x18
mov dword [rsp + 8], eax
mov eax, r9d
shr r9d, 0x18
movzx eax, ah
mov r15d, dword [r13 + rax*4]
mov r13d, dword [rbp + r9*4]
movzx eax, bh
mov r9d, dword [rbp + r8*4]
movzx r8d, bl
mov r14d, dword [r12 + rax*4]
shr ebx, 0x10
mov r8d, dword [r11 + r8*4]
mov rax, r11
xor r13d, r10d
movzx ebx, bl
mov r11d, r9d
xor r13d, dword [rsp + 8]
xor r11d, r8d
xor r8d, r10d
mov r10d, esi
xor r11d, dword [rdi + rbx*4]
shr r10d, 0x18
xor r13d, r15d
xor r15d, r14d
xor r14d, r11d
mov r11d, dword [rbp + r10*4]
mov r10d, esi
mov rbp, rdi
mov ebx, dword [rsp + 8]
shr r10d, 0x10
movzx r10d, r10b
xor r9d, r11d
mov edi, dword [rdi + r10*4]
movzx r10d, sil
xor ebx, edi
mov dword [rsp + 0x28], ebx
mov ebx, dword [rax + r10*4]
mov eax, esi
movzx esi, ah
mov qword [rsp + 8], r12
mov eax, dword [rsp + 0x28]
mov r10d, dword [r12 + rsi*4]
xor r11d, ebx
mov rsi, qword [rsp + 0x10]
xor r8d, ebx
xor r11d, edi
mov rdi, qword [rsp + 0x50]
mov ebx, dword [rsp + 0x78]
xor r10d, r11d
mov r11d, dword [rsp + 0x38]
shr r11d, 0x18
mov esi, dword [rsi + r11*4]
xor r9d, esi
shr rdi, 0x10
mov r11, rdi
movzx edi, bh
mov rbx, qword [rsp + 8]
and r11d, 0xff
mov r12d, dword [rbp + r11*4]
mov ebp, dword [rbx + rdi*4]
mov ebx, r15d
movzx edi, byte [rsp + 0x60]
mov r15, qword [rsp + 0x18]
xor eax, r12d
xor ebx, ebp
xor esi, dword [r15 + rdi*4]
xor esi, r12d
xor esi, ebp
mov ebp, r8d
mov r11d, esi
mov esi, r13d
xor esi, r9d
and esi, 0xff000000
mov edi, esi
mov esi, r14d
xor esi, eax
and esi, 0xff0000
or esi, edi
mov edi, r8d
xor edi, r11d
movzx edi, dil
or esi, edi
mov edi, r10d
xor edi, ebx
and edi, 0xff00
or esi, edi
mov edi, r9d
mov dword [rcx + 0x78], esi
mov r12d, esi
mov esi, r8d
shl edi, 8
shr esi, 0x18
xor edi, r14d
xor esi, r13d
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 esi, r9d
shl esi, 0x10
shr ebp, 0x10
mov dword [rcx + 0x7c], edi
shl r9d, 0x18
xor esi, r10d
xor ebp, r14d
shr r8d, 8
and esi, 0xff000000
movzx ebp, bpl
xor r9d, r11d
xor r8d, r10d
or esi, ebp
mov ebp, eax
shr eax, 8
and r9d, 0xff000000
shl ebp, 0x10
movzx r8d, r8b
xor eax, r13d
xor ebp, r11d
or r9d, r8d
and eax, 0xff0000
mov r8d, 1
and ebp, 0xff0000
or r9d, eax
or esi, ebp
mov ebp, ebx
shr ebx, 8
shr ebp, 0x10
xor ebx, r14d
xor ebp, r13d
mov eax, ebx
and ebp, 0xff00
and eax, 0xff00
or esi, ebp
or r9d, eax
cmp qword [rsp + 0xe0], 4
mov dword [rsp + 0x38], esi
mov dword [rcx + 0x80], esi
mov dword [rsp + 0x34], r9d
mov dword [rcx + 0x84], r9d
jbe 0x470925
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
add rdx, 4
mov dword [rsp + 0x28], eax
jmp 0x46f33b
mov eax, dword [rdx]
bswap eax
sub qword [rsp + 0xe0], 4
add rdx, 4
mov dword [rsp + 0x28], eax
jmp 0x470ada
mov eax, dword [rsp + 0x28]
mov dword [rcx + 4], r9d
mov dword [rcx], eax
jmp 0x470971
mov eax, dword [rcx + 0x74]
mov r14d, dword [rcx + 0x54]
mov r11d, dword [rcx + 0x58]
mov r15d, dword [rcx + 0x64]
mov dword [rsp + 0x3c], eax
mov eax, dword [rcx + 0x5c]
mov dword [rsp + 0x30], eax
mov eax, dword [rcx + 0x60]
mov dword [rsp + 0x2c], eax
mov eax, dword [rcx + 0x98]
mov dword [rsp + 0x50], eax
mov eax, dword [rcx + 0x84]
mov dword [rsp + 0x34], eax
mov eax, dword [rcx + 0x88]
mov dword [rsp + 0x60], eax
mov eax, dword [rcx + 0x78]
mov dword [rsp + 0x68], eax
mov eax, dword [rcx + 0x7c]
mov dword [rsp + 0x5c], eax
mov eax, dword [rcx + 0x80]
mov dword [rsp + 0x38], eax
lea rax, [0x005f3b60]
mov qword [rsp + 0x20], rax
lea rax, [0x005f3760]
mov qword [rsp + 8], rax
lea rax, [0x005f3360]
mov qword [rsp + 0x18], rax
lea rax, [0x005f3f60]
mov qword [rsp + 0x10], rax
jmp 0x46faa4
xor eax, eax
jmp 0x47096b
mov eax, dword [rsp + 0xe0]
mov dword [rcx + 4], eax
mov rax, qword [rsp + 0xe0]
sub rax, 1
jmp 0x47094a