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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xe8
mov r11d, dword [rcx + 4]
mov r9, r8
mov r8, rdx
lea rax, [r9*8]
add qword [rcx + 0xa0], rax
mov eax, dword [rcx]
cmp r11d, 4
jae 0x1400590b5
mov r10d, 4
sub r10d, r11d
mov edx, r10d
cmp r9, rdx
cmovb r10d, r9d
add r11d, r10d
test r10d, r10d
je 0x1400590a2
mov ecx, r10d
sub r9, rcx
mov qword [rsp + 0x100], r9
movzx ecx, byte [r8]
inc r8
shl eax, 8
or eax, ecx
add r10d, 0xffffffff
jne 0x140059080
mov rcx, qword [rsp + 0xf0]
mov qword [rsp + 0xf8], r8
test r9, r9
jne 0x1400590b5
mov dword [rcx], eax
mov dword [rcx + 4], r11d
add rsp, 0xe8
ret
mov edx, dword [rcx + 0xc]
mov r11d, dword [rcx + 8]
mov dword [rsp + 0x20], edx
mov edx, dword [rcx + 0x18]
mov dword [rsp + 4], edx
mov edx, dword [rcx + 0x20]
mov dword [rsp + 0x7c], edx
mov edx, dword [rcx + 0x24]
mov dword [rsp + 0x34], edx
mov edx, dword [rcx + 0x28]
mov dword [rsp + 0x50], edx
mov edx, dword [rcx + 0x2c]
mov dword [rsp + 0x54], edx
mov edx, dword [rcx + 0x30]
mov dword [rsp + 0x80], edx
mov edx, dword [rcx + 0x38]
mov dword [rsp + 0x84], edx
mov edx, dword [rcx + 0x3c]
mov dword [rsp + 0x24], edx
mov edx, dword [rcx + 0x40]
mov dword [rsp + 0x58], edx
mov edx, dword [rcx + 0x44]
mov dword [rsp + 0x78], edx
mov edx, dword [rcx + 0x48]
mov dword [rsp + 0x40], edx
mov edx, dword [rcx + 0x4c]
mov dword [rsp + 0x5c], edx
mov edx, dword [rcx + 0x50]
mov dword [rsp + 0x88], edx
mov edx, dword [rcx + 0x54]
mov dword [rsp + 8], edx
mov edx, dword [rcx + 0x58]
mov dword [rsp + 0x68], edx
mov edx, dword [rcx + 0x5c]
mov dword [rsp + 0x64], edx
mov edx, dword [rcx + 0x60]
mov dword [rsp + 0x8c], edx
mov edx, dword [rcx + 0x64]
mov dword [rsp + 0x60], edx
mov edx, dword [rcx + 0x68]
mov dword [rsp + 0x90], edx
mov edx, dword [rcx + 0x6c]
mov qword [rsp + 0xe0], rbx
mov ebx, dword [rcx + 0x1c]
mov dword [rsp + 0x28], edx
mov edx, dword [rcx + 0x78]
mov qword [rsp + 0xd8], rbp
mov ebp, dword [rcx + 0x94]
mov dword [rsp + 0x10], edx
mov edx, dword [rcx + 0x80]
mov qword [rsp + 0xd0], rsi
mov esi, dword [rcx + 0x7c]
mov dword [rsp + 0x94], edx
mov edx, dword [rcx + 0x84]
mov qword [rsp + 0xc8], rdi
mov edi, dword [rcx + 0x34]
mov dword [rsp + 0xc], edx
mov edx, dword [rcx + 0x88]
mov qword [rsp + 0xc0], r12
mov r12d, dword [rcx + 0x10]
mov dword [rsp + 0x2c], edx
mov edx, dword [rcx + 0x8c]
mov qword [rsp + 0xb8], r13
mov r13d, dword [rcx + 0x70]
mov dword [rsp + 0x6c], edx
mov edx, dword [rcx + 0x90]
mov qword [rsp + 0xb0], r14
mov r14d, dword [rcx + 0x74]
mov dword [rsp + 0x38], edx
mov edx, dword [rcx + 0x98]
mov qword [rsp + 0xa8], r15
mov r15d, dword [rcx + 0x14]
mov dword [rsp + 0x98], edx
mov dword [rsp + 0x70], r12d
mov dword [rsp + 0x4c], r15d
mov dword [rsp + 0x14], ebx
mov dword [rsp + 0x18], edi
mov dword [rsp + 0x74], r13d
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x1c], esi
mov dword [rsp + 0x108], ebp
xor edx, edx
mov r10d, r11d
test r11d, r11d
je 0x140059ceb
sub r10d, 1
je 0x14005a773
cmp r10d, 1
jne 0x14005b27a
mov r15d, dword [rsp + 0x58]
mov r12d, dword [rsp + 0x78]
mov r10d, dword [rsp + 0x40]
xor r15d, dword [rsp + 0x20]
lea r9, [0x140000000]
mov ecx, dword [rsp + 4]
xor esi, r12d
xor dword [rsp + 0x5c], ecx
xor dword [rsp + 0x10], r15d
mov edx, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x34]
xor dword [rsp + 0x68], ecx
xor dword [rsp + 0x94], r10d
xor ebp, dword [rsp + 0x24]
xor dword [rsp + 0x64], eax
mov r8d, r15d
xor r8, rdx
mov dword [rsp + 0x58], r15d
mov rcx, r8
mov dword [rsp + 0x1c], esi
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov dword [rsp + 0x108], ebp
mov r15d, dword [r9 + rdx*4 + 0x136ad0]
mov ebx, dword [r9 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 8
xor ebx, r15d
movzx edx, cl
movzx ecx, r8b
mov r8d, r12d
lea r12, [0x140000000]
mov r14d, dword [r9 + rdx*4 + 0x137360]
xor ebx, r14d
mov edi, dword [r9 + rcx*4 + 0x136f20]
xor ebx, edi
mov ecx, dword [rsp + 0x18]
xor r8, rcx
mov r9d, r10d
mov rcx, r8
mov dword [rsp + 0x30], ebx
shr rcx, 0x18
mov esi, dword [r12 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r11d, dword [r12 + rdx*4 + 0x136ad0]
movzx edx, cl
xor r11d, esi
mov ecx, dword [r12 + rdx*4 + 0x137360]
xor r11d, ecx
mov edx, dword [rsp + 0x84]
xor r14d, ecx
xor r9, rdx
movzx ecx, r8b
mov ecx, dword [r12 + rcx*4 + 0x136f20]
xor edi, ecx
xor r11d, ecx
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + rcx*4 + 0x1366b0]
xor esi, r10d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [r12 + rdx*4 + 0x136ad0]
xor r15d, r8d
movzx edx, cl
mov ecx, dword [r12 + rdx*4 + 0x137360]
xor ecx, r8d
mov r8d, eax
xor r10d, ecx
movzx ecx, r9b
mov ecx, dword [r12 + rcx*4 + 0x136f20]
xor r10d, ecx
xor edi, ecx
shr rax, 0x18
mov r9d, dword [r12 + rax*4 + 0x1366b0]
xor esi, r9d
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x136ad0]
xor r15d, eax
xor r9d, eax
mov ebp, r15d
shl ebp, 0x10
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [r12 + rcx*4 + 0x137360]
xor r14d, edx
mov eax, dword [r12 + rax*4 + 0x136f20]
mov ecx, r15d
xor eax, edx
shl ecx, 8
xor r9d, eax
xor ecx, r10d
xor ebp, r9d
and ecx, 0xff0000
and ebp, 0xff0000
mov eax, edi
shr eax, 0x18
xor eax, ebx
movzx eax, al
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, esi
shl eax, 8
xor eax, r11d
and eax, r8d
or ecx, eax
mov eax, edi
xor dword [rsp + 0x28], ecx
shr eax, 0x10
xor eax, r11d
mov dword [rsp + 0x18], ecx
movzx eax, al
or ebp, eax
mov eax, esi
shl eax, 0x10
xor eax, r10d
and eax, r8d
or ebp, eax
mov eax, r14d
shr eax, 0x10
xor eax, ebx
and eax, 0xff00
or ebp, eax
mov eax, edi
shr eax, 8
xor r13d, ebp
xor eax, r10d
mov dword [rsp + 0x84], ebp
movzx edx, al
mov eax, r15d
shr eax, 8
xor eax, ebx
mov dword [rsp + 0x74], r13d
and eax, 0xff0000
or edx, eax
mov eax, esi
shl eax, 0x18
xor eax, r9d
and eax, r8d
or edx, eax
mov eax, r14d
shr eax, 8
xor eax, r11d
and eax, 0xff00
or edx, eax
xor dword [rsp + 0x48], edx
mov dword [rsp + 0x24], edx
mov eax, dword [rsp + 0x34]
mov edx, ecx
xor rdx, rax
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [r12 + rcx*4 + 0x136ad0]
mov ebx, dword [r12 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor ebx, ecx
mov dword [rsp], ecx
movzx ecx, al
movzx eax, dl
mov edx, ebp
mov r8d, dword [r12 + rcx*4 + 0x137360]
xor ebx, r8d
mov r13d, dword [r12 + rax*4 + 0x136f20]
xor ebx, r13d
mov eax, dword [rsp + 0x50]
xor rdx, rax
mov dword [rsp + 0x34], ebx
lea rbx, [0x140000000]
mov rax, rdx
shr rax, 0x18
mov r12d, dword [r12 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebp, dword [rbx + rcx*4 + 0x136ad0]
movzx ecx, al
xor ebp, r12d
mov eax, dword [rbx + rcx*4 + 0x137360]
xor r8d, eax
xor ebp, eax
mov dword [rsp + 0x44], r8d
mov r8d, dword [rsp + 0x24]
movzx eax, dl
mov eax, dword [rbx + rax*4 + 0x136f20]
xor r13d, eax
xor ebp, eax
mov eax, dword [rsp + 0x54]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov ebx, dword [rbx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r12d, ebx
movzx ecx, al
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x136ad0]
mov rax, r8
xor dword [rsp], edx
shr rax, 8
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor ebx, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor ebx, eax
xor r13d, eax
mov ecx, edi
mov eax, r9d
xor rcx, rax
mov eax, r11d
movzx r8d, cl
mov ecx, r15d
xor rcx, rax
mov eax, r10d
and ecx, 0xff0000
or r8, rcx
mov ecx, r14d
xor rcx, rax
mov eax, dword [rsp + 0x30]
lea r10, [0x140000000]
mov r14d, dword [rsp]
and ecx, 0xff00
mov edi, dword [rsp + 0x44]
or r8, rcx
mov ecx, esi
mov esi, 0xff000000
xor rcx, rax
and rcx, rsi
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [r10 + rax*4 + 0x1366b0]
xor r12d, r9d
mov rax, r8
mov dword [rsp + 0x30], r12d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r10 + rcx*4 + 0x136ad0]
xor r14d, eax
xor r9d, eax
mov r11d, r14d
shl r11d, 0x10
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov edx, dword [r10 + rcx*4 + 0x137360]
xor edi, edx
mov eax, dword [r10 + rax*4 + 0x136f20]
xor eax, edx
mov ecx, dword [rsp + 0x34]
xor r9d, eax
mov edx, r14d
shl edx, 8
xor r11d, r9d
xor edx, ebx
and r11d, 0xff0000
and edx, 0xff0000
mov eax, edi
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r12d
shl eax, 8
xor eax, ebp
and eax, esi
or edx, eax
mov eax, r13d
shr eax, 0x18
xor eax, ecx
movzx eax, al
or edx, eax
mov eax, r13d
shr eax, 0x10
xor eax, ebp
mov dword [rsp + 0x50], edx
movzx eax, al
or r11d, eax
mov eax, r12d
shl eax, 0x10
xor eax, ebx
and eax, esi
or r11d, eax
mov eax, edi
shr eax, 0x10
xor eax, ecx
and eax, 0xff00
or r11d, eax
mov eax, r13d
shr eax, 8
xor eax, ebx
mov dword [rsp + 0x54], r11d
movzx r15d, al
mov eax, r12d
shl eax, 0x18
xor eax, r9d
and eax, esi
or r15d, eax
xor dword [rsp + 0x8c], edx
mov eax, edi
shr eax, 8
xor eax, ebp
xor dword [rsp + 0x60], r11d
and eax, 0xff00
or r15d, eax
mov eax, r14d
shr eax, 8
xor eax, ecx
and eax, 0xff0000
or r15d, eax
mov eax, dword [rsp + 4]
xor rdx, rax
xor dword [rsp + 0x90], r15d
mov rax, rdx
mov dword [rsp + 0x80], r15d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [r10 + rcx*4 + 0x136ad0]
mov r8d, dword [r10 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor r8d, ecx
mov dword [rsp], ecx
movzx ecx, al
movzx eax, dl
mov edx, r11d
mov esi, dword [r10 + rcx*4 + 0x137360]
xor r8d, esi
mov r10d, dword [r10 + rax*4 + 0x136f20]
xor r8d, r10d
mov eax, dword [rsp + 0x14]
xor rdx, rax
mov dword [rsp + 4], r8d
lea r8, [0x140000000]
mov rax, rdx
shr rax, 0x18
mov r11d, dword [r8 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r12d, dword [r8 + rcx*4 + 0x136ad0]
movzx ecx, al
xor r12d, r11d
mov eax, dword [r8 + rcx*4 + 0x137360]
xor r12d, eax
xor esi, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [r8 + rax*4 + 0x136f20]
xor r12d, eax
xor r10d, eax
mov r8d, r15d
mov eax, dword [rsp + 0x7c]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r15d, dword [rdx + rax*4 + 0x1366b0]
xor r11d, r15d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor dword [rsp], edx
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor r15d, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor r15d, eax
xor r10d, eax
mov eax, r9d
mov dword [rsp + 0x44], r10d
mov ecx, r13d
mov r13d, dword [rsp]
xor rcx, rax
mov eax, ebp
movzx r8d, cl
mov ecx, r14d
xor rcx, rax
mov eax, ebx
and ecx, 0xff0000
lea rbx, [0x140000000]
or r8, rcx
mov ecx, edi
xor rcx, rax
mov edi, 0xff000000
mov eax, dword [rsp + 0x34]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x30]
xor rcx, rax
and rcx, rdi
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rbx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r11d, r9d
movzx ecx, al
mov dword [rsp + 0x3c], r11d
mov eax, dword [rbx + rcx*4 + 0x136ad0]
xor r13d, eax
xor r9d, eax
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, r13d
shl r8d, 0x10
mov edx, dword [rbx + rcx*4 + 0x137360]
xor esi, edx
mov eax, dword [rbx + rax*4 + 0x136f20]
mov ecx, dword [rsp + 4]
xor eax, edx
xor r9d, eax
mov dword [rsp + 0x30], esi
xor r8d, r9d
mov eax, r10d
shr eax, 0x18
and r8d, 0xff0000
xor eax, ecx
mov edx, r13d
movzx eax, al
shl edx, 8
xor edx, r15d
and edx, 0xff0000
or edx, eax
mov eax, esi
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r11d
shl eax, 8
xor eax, r12d
and eax, edi
or edx, eax
mov eax, r10d
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x14], edx
movzx eax, al
or r8d, eax
mov eax, r11d
shl eax, 0x10
xor eax, r15d
and eax, edi
or r8d, eax
mov eax, esi
shr eax, 0x10
xor eax, ecx
xor dword [rsp + 8], edx
and eax, 0xff00
or r8d, eax
mov eax, r10d
shr eax, 8
xor eax, r15d
xor dword [rsp + 0x68], r8d
movzx r10d, al
mov eax, r13d
shr eax, 8
xor eax, ecx
mov dword [rsp + 0x7c], r8d
and eax, 0xff0000
or r10d, eax
mov eax, r11d
shl eax, 0x18
xor eax, r9d
and eax, edi
or r10d, eax
mov eax, esi
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r10d, eax
mov eax, dword [rsp + 0x20]
xor dword [rsp + 0x64], r10d
xor rdx, rax
mov rax, rdx
mov dword [rsp + 0x34], r10d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [rbx + rcx*4 + 0x136ad0]
mov esi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, r8d
mov r8d, r10d
mov r14d, dword [rbx + rcx*4 + 0x137360]
xor esi, r14d
mov r11d, dword [rbx + rax*4 + 0x136f20]
xor esi, r11d
mov eax, dword [rsp + 0x70]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [rbx + rcx*4 + 0x136ad0]
movzx ecx, al
xor ebx, edi
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor ebx, eax
xor r14d, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [rdx + rax*4 + 0x136f20]
xor ebx, eax
xor r11d, eax
mov eax, dword [rsp + 0x4c]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [rdx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
mov rax, r8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor ebp, edx
shr rax, 8
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor eax, edx
mov ecx, dword [rsp + 0x44]
xor r10d, eax
lea rdx, [0x140000000]
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0x136f20]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r12d
movzx r8d, cl
mov ecx, r13d
xor rcx, rax
mov r13d, 0xff000000
and ecx, 0xff0000
mov eax, r15d
or r8, rcx
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, dword [rsp + 4]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x3c]
xor rcx, rax
and rcx, r13
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0x1366b0]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0x136ad0]
xor r9d, eax
xor ebp, eax
mov rax, r8
shr rax, 8
mov r12d, ebp
movzx ecx, al
shl r12d, 8
xor r12d, r10d
movzx eax, r8b
and r12d, 0xff0000
mov edx, dword [rdx + rcx*4 + 0x137360]
xor r14d, edx
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x136f20]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r13d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x20], ecx
movzx eax, al
or r12d, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or r12d, eax
mov r8, qword [rsp + 0xf8]
mov r15d, ebp
shl r15d, 0x10
mov eax, edi
shl eax, 8
xor r15d, r9d
xor eax, ebx
shr ebp, 8
and eax, r13d
and r15d, 0xff0000
or r12d, eax
xor ebp, esi
mov eax, r11d
and ebp, 0xff0000
shr eax, 0x10
xor eax, ebx
shr r11d, 8
movzx eax, al
xor r11d, r10d
or r15d, eax
mov eax, edi
shl eax, 0x10
xor eax, r10d
shl edi, 0x18
and eax, r13d
movzx r10d, r11b
or r15d, eax
or r10d, ebp
mov ebp, dword [rsp + 0x108]
mov eax, r14d
shr eax, 0x10
xor edi, r9d
mov r9, qword [rsp + 0x100]
xor eax, esi
shr r14d, 8
and edi, r13d
xor r14d, ebx
and eax, 0xff00
mov ebx, dword [rsp + 0x14]
or r10d, edi
and r14d, 0xff00
or r15d, eax
or r10d, r14d
mov dword [rsp + 0x4c], r15d
mov dword [rsp + 4], r10d
cmp r9, 4
jbe 0x14005b223
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xf8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0x100], r9
jmp 0x140059cf0
mov r10d, dword [rsp + 4]
xor ebx, dword [rsp + 0x10]
xor r12d, dword [rsp + 0x28]
xor dword [rsp + 0x5c], r15d
mov ecx, dword [rsp + 0x20]
xor dword [rsp + 0x60], ecx
xor dword [rsp + 0x88], r10d
xor dword [rsp + 0x40], r12d
mov r8d, dword [rsp + 0x38]
xor dword [rsp + 0x54], eax
mov r9d, dword [rsp + 0x98]
mov r13d, dword [rsp + 0xc]
xor dword [rsp + 0x50], r13d
mov dword [rsp + 0x14], ebx
mov ecx, r12d
xor r8, rcx
mov dword [rsp + 0x70], r12d
lea r12, [0x140000000]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov r15d, dword [r12 + rdx*4 + 0x136ad0]
mov ebx, dword [r12 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 8
xor ebx, r15d
movzx edx, cl
movzx ecx, r8b
mov r8d, ebp
mov r14d, dword [r12 + rdx*4 + 0x137360]
xor ebx, r14d
mov edi, dword [r12 + rcx*4 + 0x136f20]
xor ebx, edi
mov ecx, dword [rsp + 0x4c]
xor r8, rcx
mov dword [rsp + 0xc], ebx
mov rcx, r8
shr rcx, 0x18
mov esi, dword [r12 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r11d, dword [r12 + rdx*4 + 0x136ad0]
movzx edx, cl
xor r11d, esi
mov ecx, dword [r12 + rdx*4 + 0x137360]
xor r11d, ecx
xor r14d, ecx
movzx ecx, r8b
mov ecx, dword [r12 + rcx*4 + 0x136f20]
xor edi, ecx
xor r11d, ecx
mov ecx, r10d
xor r9, rcx
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r12 + rcx*4 + 0x1366b0]
xor esi, r10d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [r12 + rdx*4 + 0x136ad0]
xor r15d, r8d
movzx edx, cl
mov ecx, dword [r12 + rdx*4 + 0x137360]
xor ecx, r8d
mov r8d, eax
xor r10d, ecx
shr rax, 0x18
movzx ecx, r9b
mov r9d, dword [r12 + rax*4 + 0x1366b0]
mov eax, r8d
mov ecx, dword [r12 + rcx*4 + 0x136f20]
xor r10d, ecx
xor edi, ecx
xor esi, r9d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r12 + rcx*4 + 0x136ad0]
xor r15d, eax
xor r9d, eax
mov ebp, r15d
shl ebp, 0x10
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [r12 + rcx*4 + 0x137360]
xor r14d, edx
mov eax, dword [r12 + rax*4 + 0x136f20]
mov ecx, r15d
xor eax, edx
shl ecx, 8
xor r9d, eax
xor ecx, r10d
xor ebp, r9d
and ecx, 0xff0000
and ebp, 0xff0000
mov eax, edi
shr eax, 0x18
xor eax, ebx
movzx eax, al
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, esi
shl eax, 8
xor eax, r11d
and eax, r8d
or ecx, eax
mov eax, edi
xor dword [rsp + 0x24], ecx
shr eax, 0x10
xor eax, r11d
mov dword [rsp + 0x108], ecx
movzx eax, al
or ebp, eax
mov eax, esi
shl eax, 0x10
xor eax, r10d
and eax, r8d
or ebp, eax
mov eax, r14d
shr eax, 0x10
xor eax, ebx
and eax, 0xff00
or ebp, eax
mov eax, edi
xor dword [rsp + 0x58], ebp
shr eax, 8
xor eax, r10d
mov dword [rsp + 0x98], ebp
movzx edx, al
mov eax, r15d
shr eax, 8
xor eax, ebx
and eax, 0xff0000
or edx, eax
mov eax, esi
shl eax, 0x18
xor eax, r9d
and eax, r8d
or edx, eax
mov eax, r14d
shr eax, 8
xor eax, r11d
and eax, 0xff00
or edx, eax
xor dword [rsp + 0x78], edx
mov dword [rsp + 0x20], edx
mov edx, ecx
xor rdx, r13
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [r12 + rcx*4 + 0x136ad0]
mov ebx, dword [r12 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor ebx, ecx
mov dword [rsp + 0x38], ecx
movzx ecx, al
movzx eax, dl
mov edx, ebp
mov r8d, dword [r12 + rcx*4 + 0x137360]
xor ebx, r8d
mov r13d, dword [r12 + rax*4 + 0x136f20]
xor ebx, r13d
mov eax, dword [rsp + 0x2c]
xor rdx, rax
mov dword [rsp], ebx
lea rbx, [0x140000000]
mov rax, rdx
shr rax, 0x18
mov r12d, dword [r12 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebp, dword [rbx + rcx*4 + 0x136ad0]
movzx ecx, al
xor ebp, r12d
mov eax, dword [rbx + rcx*4 + 0x137360]
xor r8d, eax
mov ecx, dword [rsp + 0x20]
xor ebp, eax
mov dword [rsp + 0x2c], r8d
mov r8d, dword [rsp + 0x6c]
xor r8, rcx
movzx eax, dl
mov eax, dword [rbx + rax*4 + 0x136f20]
xor r13d, eax
xor ebp, eax
mov rax, r8
shr rax, 0x18
mov ebx, dword [rbx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r12d, ebx
movzx ecx, al
lea rax, [0x140000000]
mov edx, dword [rax + rcx*4 + 0x136ad0]
mov rax, r8
xor dword [rsp + 0x38], edx
shr rax, 8
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor ebx, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor ebx, eax
xor r13d, eax
mov ecx, edi
mov eax, r9d
xor rcx, rax
mov eax, r11d
movzx r8d, cl
mov ecx, r15d
xor rcx, rax
mov eax, r10d
and ecx, 0xff0000
or r8, rcx
mov ecx, r14d
xor rcx, rax
mov eax, dword [rsp + 0xc]
and ecx, 0xff00
or r8, rcx
mov ecx, esi
xor rcx, rax
mov edi, dword [rsp + 0x2c]
mov r14d, dword [rsp + 0x38]
lea r10, [0x140000000]
mov esi, 0xff000000
and rcx, rsi
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [r10 + rax*4 + 0x1366b0]
xor r12d, r9d
mov rax, r8
mov dword [rsp + 0x3c], r12d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r10 + rcx*4 + 0x136ad0]
xor r14d, eax
xor r9d, eax
mov r11d, r14d
shl r11d, 0x10
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov edx, dword [r10 + rcx*4 + 0x137360]
xor edi, edx
mov eax, dword [r10 + rax*4 + 0x136f20]
xor eax, edx
mov ecx, dword [rsp]
xor r9d, eax
mov edx, r14d
shl edx, 8
xor r11d, r9d
xor edx, ebx
and r11d, 0xff0000
and edx, 0xff0000
mov eax, r13d
shr eax, 0x18
xor eax, ecx
movzx eax, al
or edx, eax
mov eax, edi
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r12d
shl eax, 8
xor eax, ebp
and eax, esi
or edx, eax
mov eax, r13d
shr eax, 0x10
xor eax, ebp
mov dword [rsp + 0x2c], edx
movzx eax, al
or r11d, eax
mov eax, r12d
shl eax, 0x10
xor eax, ebx
and eax, esi
or r11d, eax
mov eax, edi
shr eax, 0x10
xor eax, ecx
and eax, 0xff00
or r11d, eax
mov eax, r13d
shr eax, 8
xor eax, ebx
mov dword [rsp + 0x6c], r11d
movzx r15d, al
mov eax, r14d
shr eax, 8
xor eax, ecx
and eax, 0xff0000
or r15d, eax
mov eax, r12d
shl eax, 0x18
xor eax, r9d
and eax, esi
or r15d, eax
xor dword [rsp + 0x80], edx
xor dword [rsp + 0x18], r11d
mov eax, edi
shr eax, 8
xor eax, ebp
and eax, 0xff00
or r15d, eax
mov eax, dword [rsp + 0x10]
xor rdx, rax
xor dword [rsp + 0x84], r15d
mov rax, rdx
mov dword [rsp + 0x38], r15d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [r10 + rcx*4 + 0x136ad0]
mov r8d, dword [r10 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor r8d, ecx
mov dword [rsp + 0xc], ecx
movzx ecx, al
movzx eax, dl
mov edx, r11d
mov esi, dword [r10 + rcx*4 + 0x137360]
xor r8d, esi
mov r10d, dword [r10 + rax*4 + 0x136f20]
xor r8d, r10d
mov eax, dword [rsp + 0x1c]
xor rdx, rax
mov dword [rsp + 0x10], r8d
lea r8, [0x140000000]
mov rax, rdx
shr rax, 0x18
mov r11d, dword [r8 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r12d, dword [r8 + rcx*4 + 0x136ad0]
movzx ecx, al
xor r12d, r11d
mov eax, dword [r8 + rcx*4 + 0x137360]
xor r12d, eax
xor esi, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [r8 + rax*4 + 0x136f20]
xor r10d, eax
xor r12d, eax
mov r8d, r15d
mov eax, dword [rsp + 0x94]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r15d, dword [rdx + rax*4 + 0x1366b0]
xor r11d, r15d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor dword [rsp + 0xc], edx
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor r15d, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor r10d, eax
xor r15d, eax
mov dword [rsp + 0x44], r10d
mov eax, r9d
mov ecx, r13d
xor rcx, rax
mov r13d, dword [rsp + 0xc]
mov eax, ebp
movzx r8d, cl
mov ecx, r14d
xor rcx, rax
mov eax, ebx
and ecx, 0xff0000
lea rbx, [0x140000000]
or r8, rcx
mov ecx, edi
xor rcx, rax
mov edi, 0xff000000
mov eax, dword [rsp]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp + 0x3c]
xor rcx, rax
and rcx, rdi
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rbx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r11d, r9d
movzx ecx, al
mov dword [rsp], r11d
mov eax, dword [rbx + rcx*4 + 0x136ad0]
xor r13d, eax
xor r9d, eax
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, r13d
shl r8d, 0x10
mov edx, dword [rbx + rcx*4 + 0x137360]
xor esi, edx
mov eax, dword [rbx + rax*4 + 0x136f20]
mov ecx, dword [rsp + 0x10]
xor eax, edx
xor r9d, eax
mov dword [rsp + 0x3c], esi
xor r8d, r9d
mov eax, r10d
shr eax, 0x18
and r8d, 0xff0000
xor eax, ecx
mov edx, r13d
movzx eax, al
shl edx, 8
xor edx, r15d
and edx, 0xff0000
or edx, eax
mov eax, esi
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r11d
shl eax, 8
xor eax, r12d
and eax, edi
or edx, eax
mov eax, r10d
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x1c], edx
movzx eax, al
or r8d, eax
mov eax, r11d
shl eax, 0x10
xor eax, r15d
and eax, edi
or r8d, eax
mov eax, esi
shr eax, 0x10
xor eax, ecx
and eax, 0xff00
or r8d, eax
mov dword [rsp + 0x94], r8d
xor dword [rsp + 0x34], edx
mov eax, r10d
shr eax, 8
xor eax, r15d
xor dword [rsp + 0x50], r8d
movzx r10d, al
mov eax, r13d
shr eax, 8
xor eax, ecx
and eax, 0xff0000
or r10d, eax
mov eax, r11d
shl eax, 0x18
xor eax, r9d
and eax, edi
or r10d, eax
mov eax, esi
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r10d, eax
mov eax, dword [rsp + 0x28]
xor dword [rsp + 0x54], r10d
xor rdx, rax
mov rax, rdx
mov dword [rsp + 0xc], r10d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [rbx + rcx*4 + 0x136ad0]
mov esi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, r8d
mov r8d, r10d
mov r14d, dword [rbx + rcx*4 + 0x137360]
xor esi, r14d
mov r11d, dword [rbx + rax*4 + 0x136f20]
xor esi, r11d
mov eax, dword [rsp + 0x74]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [rbx + rcx*4 + 0x136ad0]
movzx ecx, al
xor ebx, edi
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor ebx, eax
xor r14d, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [rdx + rax*4 + 0x136f20]
xor ebx, eax
xor r11d, eax
mov eax, dword [rsp + 0x48]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [rdx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor edi, r10d
movzx ecx, al
mov rax, r8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor ebp, edx
shr rax, 8
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor eax, edx
mov ecx, dword [rsp + 0x44]
xor r10d, eax
lea rdx, [0x140000000]
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0x136f20]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r12d
movzx r8d, cl
mov ecx, r13d
xor rcx, rax
mov eax, r15d
and ecx, 0xff0000
mov r15d, 0xff000000
or r8, rcx
mov ecx, dword [rsp + 0x3c]
xor rcx, rax
mov eax, dword [rsp + 0x10]
and ecx, 0xff00
or r8, rcx
mov ecx, dword [rsp]
xor rcx, rax
and rcx, r15
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0x1366b0]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0x136ad0]
xor r9d, eax
xor ebp, eax
mov rax, r8
shr rax, 8
mov r13d, ebp
movzx ecx, al
shl r13d, 8
xor r13d, r10d
movzx eax, r8b
and r13d, 0xff0000
mov edx, dword [rdx + rcx*4 + 0x137360]
xor r14d, edx
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x136f20]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r15d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x28], ecx
movzx eax, al
or r13d, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or r13d, eax
mov eax, edi
shl eax, 8
xor eax, ebx
and eax, r15d
mov r8, qword [rsp + 0xf8]
or r13d, eax
mov r12d, dword [rsp + 0x70]
mov ecx, ebp
shl ecx, 0x10
mov eax, r11d
shr eax, 0x10
xor ecx, r9d
xor eax, ebx
shr ebp, 8
movzx eax, al
and ecx, 0xff0000
or ecx, eax
shr r11d, 8
mov eax, edi
xor r11d, r10d
shl eax, 0x10
xor ebp, esi
xor eax, r10d
shl edi, 0x18
and eax, r15d
movzx r10d, r11b
or ecx, eax
xor edi, r9d
mov r9, qword [rsp + 0x100]
mov eax, r14d
shr eax, 0x10
and edi, r15d
shr r14d, 8
xor eax, esi
mov esi, dword [rsp + 0x1c]
xor r14d, ebx
mov ebx, dword [rsp + 0x14]
and ebp, 0xff0000
or r10d, ebp
and eax, 0xff00
or r10d, edi
and r14d, 0xff00
mov edi, dword [rsp + 0x18]
or ecx, eax
or r10d, r14d
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x10], r10d
cmp r9, 4
jbe 0x14005b259
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xf8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0x100], r9
jmp 0x14005a778
mov r10d, dword [rsp + 0x10]
xor edi, dword [rsp + 0x28]
xor r13d, dword [rsp + 0x24]
xor esi, dword [rsp + 0x40]
mov r9d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x8c]
xor ebx, r9d
mov ecx, dword [rsp + 8]
xor dword [rsp + 0x2c], ecx
xor dword [rsp + 0x7c], r10d
xor dword [rsp + 4], r13d
xor dword [rsp + 0x6c], eax
mov dword [rsp + 0x18], edi
mov dword [rsp + 0x14], ebx
mov r8d, r13d
xor r8, rdx
mov dword [rsp + 0x1c], esi
mov rcx, r8
mov dword [rsp + 0x74], r13d
shr rcx, 0x10
lea r13, [0x140000000]
movzx edx, cl
mov rcx, r8
shr rcx, 0x18
mov r15d, dword [r13 + rdx*4 + 0x136ad0]
mov edi, dword [r13 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 8
xor edi, r15d
movzx edx, cl
movzx ecx, r8b
mov r8d, r9d
mov r9d, r10d
mov r14d, dword [r13 + rdx*4 + 0x137360]
xor edi, r14d
mov ebx, dword [r13 + rcx*4 + 0x136f20]
xor edi, ebx
mov edx, dword [rsp + 0x60]
xor r8, rdx
mov dword [rsp + 0x44], edi
mov rcx, r8
shr rcx, 0x18
mov esi, dword [r13 + rcx*4 + 0x1366b0]
mov rcx, r8
shr rcx, 0x10
movzx edx, cl
mov rcx, r8
shr rcx, 8
mov r11d, dword [r13 + rdx*4 + 0x136ad0]
movzx edx, cl
xor r11d, esi
mov ecx, dword [r13 + rdx*4 + 0x137360]
xor r11d, ecx
mov edx, dword [rsp + 0x90]
xor r14d, ecx
xor r9, rdx
movzx ecx, r8b
mov ecx, dword [r13 + rcx*4 + 0x136f20]
xor ebx, ecx
xor r11d, ecx
mov rcx, r9
shr rcx, 0x18
mov r10d, dword [r13 + rcx*4 + 0x1366b0]
xor esi, r10d
mov rcx, r9
shr rcx, 0x10
movzx edx, cl
mov rcx, r9
shr rcx, 8
mov r8d, dword [r13 + rdx*4 + 0x136ad0]
xor r15d, r8d
movzx edx, cl
mov ecx, dword [r13 + rdx*4 + 0x137360]
xor ecx, r8d
mov r8d, eax
xor r10d, ecx
movzx ecx, r9b
mov ecx, dword [r13 + rcx*4 + 0x136f20]
xor r10d, ecx
xor ebx, ecx
shr rax, 0x18
mov r9d, dword [r13 + rax*4 + 0x1366b0]
xor esi, r9d
mov eax, r8d
shr rax, 0x10
movzx ecx, al
mov eax, dword [r13 + rcx*4 + 0x136ad0]
xor r15d, eax
xor r9d, eax
mov ebp, r15d
shl ebp, 0x10
mov eax, r8d
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, 0xff000000
mov edx, dword [r13 + rcx*4 + 0x137360]
xor r14d, edx
mov eax, dword [r13 + rax*4 + 0x136f20]
mov ecx, r15d
xor eax, edx
shl ecx, 8
xor r9d, eax
xor ecx, r10d
xor ebp, r9d
and ecx, 0xff0000
and ebp, 0xff0000
mov eax, ebx
shr eax, 0x18
xor eax, edi
movzx eax, al
or ecx, eax
mov eax, r14d
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, esi
shl eax, 8
xor eax, r11d
and eax, r8d
or ecx, eax
mov eax, ebx
xor dword [rsp + 0x20], ecx
shr eax, 0x10
xor eax, r11d
mov dword [rsp + 0x60], ecx
movzx eax, al
or ebp, eax
mov eax, esi
shl eax, 0x10
xor eax, r10d
and eax, r8d
or ebp, eax
mov eax, r14d
shr eax, 0x10
xor eax, edi
and eax, 0xff00
or ebp, eax
mov eax, ebx
shr eax, 8
xor r12d, ebp
xor eax, r10d
mov dword [rsp + 0x90], ebp
movzx edx, al
mov eax, r15d
shr eax, 8
xor eax, edi
mov dword [rsp + 0x70], r12d
and eax, 0xff0000
or edx, eax
mov eax, esi
shl eax, 0x18
xor eax, r9d
and eax, r8d
or edx, eax
mov eax, r14d
shr eax, 8
xor eax, r11d
and eax, 0xff00
or edx, eax
xor dword [rsp + 0x4c], edx
mov dword [rsp + 0x28], edx
mov eax, dword [rsp + 8]
mov edx, ecx
xor rdx, rax
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ecx, dword [r13 + rcx*4 + 0x136ad0]
mov r8d, dword [r13 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor r8d, ecx
mov dword [rsp + 8], ecx
movzx ecx, al
movzx eax, dl
mov edx, ebp
mov edi, dword [r13 + rcx*4 + 0x137360]
xor r8d, edi
mov r12d, dword [r13 + rax*4 + 0x136f20]
xor r8d, r12d
mov eax, dword [rsp + 0x68]
xor rdx, rax
mov dword [rsp + 0x3c], r8d
mov r8d, dword [rsp + 0x28]
mov rax, rdx
shr rax, 0x18
mov ebp, dword [r13 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r13d, dword [r13 + rcx*4 + 0x136ad0]
movzx ecx, al
xor r13d, ebp
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor edi, eax
xor r13d, eax
mov dword [rsp], edi
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [rdx + rax*4 + 0x136f20]
xor r12d, eax
xor r13d, eax
mov eax, dword [rsp + 0x64]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov edi, dword [rdx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor ebp, edi
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor dword [rsp + 8], edx
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor edi, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor r12d, eax
xor edi, eax
mov dword [rsp + 0x30], r12d
mov eax, r9d
mov ecx, ebx
xor rcx, rax
mov eax, r11d
movzx r8d, cl
mov ecx, r15d
xor rcx, rax
mov eax, r10d
and ecx, 0xff0000
or r8, rcx
mov ecx, r14d
xor rcx, rax
mov r10d, dword [rsp + 8]
mov eax, dword [rsp + 0x44]
and ecx, 0xff00
mov ebx, dword [rsp + 0x3c]
or r8, rcx
mov r14d, 0xff000000
mov ecx, esi
xor rcx, rax
lea rsi, [0x140000000]
and rcx, r14
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rsi + rax*4 + 0x1366b0]
xor ebp, r9d
mov rax, r8
mov r11d, ebp
shr rax, 0x10
mov r15d, ebp
movzx ecx, al
shl r11d, 0x10
xor r11d, edi
shl r15d, 0x18
and r11d, r14d
mov eax, dword [rsi + rcx*4 + 0x136ad0]
xor r9d, eax
xor r10d, eax
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov dword [rsp + 8], r10d
mov edx, dword [rsi + rcx*4 + 0x137360]
mov eax, dword [rsi + rax*4 + 0x136f20]
xor eax, edx
mov ecx, dword [rsp]
xor r9d, eax
xor ecx, edx
mov eax, r10d
mov dword [rsp], ecx
shl eax, 8
mov edx, ebp
xor eax, edi
shl edx, 8
and eax, 0xff0000
xor edx, r13d
and edx, r14d
xor r15d, r9d
or edx, eax
and r15d, r14d
mov eax, r12d
shr eax, 0x18
xor eax, ebx
movzx eax, al
or edx, eax
mov eax, ecx
shl eax, 8
xor eax, r9d
and eax, 0xff00
or edx, eax
mov eax, r10d
shl eax, 0x10
xor eax, r9d
mov dword [rsp + 0x68], edx
and eax, 0xff0000
or r11d, eax
mov eax, r12d
shr eax, 0x10
xor eax, r13d
movzx eax, al
or r11d, eax
mov eax, ecx
shr eax, 0x10
xor eax, ebx
and eax, 0xff00
or r11d, eax
mov eax, r12d
shr eax, 8
xor eax, edi
mov dword [rsp + 0x64], r11d
movzx eax, al
or r15d, eax
xor dword [rsp + 0x38], edx
xor dword [rsp + 0x108], r11d
mov eax, r10d
shr eax, 8
xor eax, ebx
and eax, 0xff0000
or r15d, eax
mov eax, ecx
shr eax, 8
xor eax, r13d
and eax, 0xff00
or r15d, eax
mov eax, dword [rsp + 0x40]
xor rdx, rax
xor dword [rsp + 0x98], r15d
mov rax, rdx
mov dword [rsp + 0x8c], r15d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov r14d, dword [rsi + rcx*4 + 0x136ad0]
mov r8d, dword [rsi + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor r8d, r14d
movzx ecx, al
movzx eax, dl
mov edx, r11d
mov esi, dword [rsi + rcx*4 + 0x137360]
xor r8d, esi
lea rcx, [0x140000000]
mov r10d, dword [rcx + rax*4 + 0x136f20]
xor r8d, r10d
mov eax, dword [rsp + 0x5c]
xor rdx, rax
mov dword [rsp + 0x44], r8d
lea r8, [0x140000000]
mov rax, rdx
shr rax, 0x18
mov r11d, dword [r8 + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov r12d, dword [r8 + rcx*4 + 0x136ad0]
movzx ecx, al
xor r12d, r11d
mov eax, dword [r8 + rcx*4 + 0x137360]
xor r12d, eax
xor esi, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [r8 + rax*4 + 0x136f20]
xor r12d, eax
xor r10d, eax
mov r8d, r15d
mov eax, dword [rsp + 0x88]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r15d, dword [rdx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r11d, r15d
movzx ecx, al
mov rax, r8
shr rax, 8
mov edx, dword [rdx + rcx*4 + 0x136ad0]
xor r14d, edx
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
lea rcx, [0x140000000]
xor eax, edx
xor r15d, eax
movzx eax, r8b
mov eax, dword [rcx + rax*4 + 0x136f20]
xor r15d, eax
mov ecx, dword [rsp + 0x30]
xor r10d, eax
mov r8d, ebp
mov eax, ebx
mov dword [rsp + 0x3c], r10d
xor r8, rax
lea rbx, [0x140000000]
mov eax, r9d
mov ebp, 0xff000000
xor rcx, rax
and r8, rbp
movzx eax, cl
or r8, rax
mov ecx, dword [rsp + 8]
mov eax, r13d
mov r13d, dword [rsp + 0x44]
xor rcx, rax
mov eax, edi
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp]
xor rcx, rax
and ecx, 0xff00
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rbx + rax*4 + 0x1366b0]
mov rax, r8
shr rax, 0x10
xor r11d, r9d
movzx ecx, al
mov dword [rsp + 0x40], r11d
mov eax, dword [rbx + rcx*4 + 0x136ad0]
xor r14d, eax
xor r9d, eax
mov dword [rsp + 0x30], r14d
mov rax, r8
shr rax, 8
movzx ecx, al
movzx eax, r8b
mov r8d, r14d
shl r8d, 0x10
mov edx, dword [rbx + rcx*4 + 0x137360]
xor esi, edx
mov eax, dword [rbx + rax*4 + 0x136f20]
mov ecx, r14d
xor eax, edx
shl ecx, 8
xor r9d, eax
mov dword [rsp], esi
xor ecx, r15d
xor r8d, r9d
and ecx, 0xff0000
mov eax, r10d
shr eax, 0x18
and r8d, 0xff0000
xor eax, r13d
movzx eax, al
or ecx, eax
mov eax, esi
shl eax, 8
xor eax, r9d
and eax, 0xff00
or ecx, eax
mov eax, r11d
shl eax, 8
xor eax, r12d
and eax, ebp
or ecx, eax
mov eax, r10d
shr eax, 0x10
xor eax, r12d
mov dword [rsp + 0x5c], ecx
movzx eax, al
or r8d, eax
mov eax, r11d
shl eax, 0x10
xor eax, r15d
and eax, ebp
or r8d, eax
xor dword [rsp + 0xc], ecx
mov eax, esi
shr eax, 0x10
xor eax, r13d
mov edx, ecx
and eax, 0xff00
or r8d, eax
mov eax, r10d
shr eax, 8
xor eax, r15d
xor dword [rsp + 0x2c], r8d
movzx r10d, al
mov eax, r14d
shr eax, 8
xor eax, r13d
mov dword [rsp + 0x88], r8d
and eax, 0xff0000
or r10d, eax
mov eax, r11d
shl eax, 0x18
xor eax, r9d
and eax, ebp
or r10d, eax
mov eax, esi
shr eax, 8
xor eax, r12d
and eax, 0xff00
or r10d, eax
mov eax, dword [rsp + 0x24]
xor dword [rsp + 0x6c], r10d
xor rdx, rax
mov rax, rdx
mov dword [rsp + 8], r10d
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 0x18
mov ebp, dword [rbx + rcx*4 + 0x136ad0]
mov esi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 8
xor esi, ebp
movzx ecx, al
movzx eax, dl
mov edx, r8d
mov r8d, r10d
mov r14d, dword [rbx + rcx*4 + 0x137360]
xor esi, r14d
mov r11d, dword [rbx + rax*4 + 0x136f20]
xor esi, r11d
mov eax, dword [rsp + 0x58]
xor rdx, rax
mov rax, rdx
shr rax, 0x18
mov edi, dword [rbx + rax*4 + 0x1366b0]
mov rax, rdx
shr rax, 0x10
movzx ecx, al
mov rax, rdx
shr rax, 8
mov ebx, dword [rbx + rcx*4 + 0x136ad0]
movzx ecx, al
xor ebx, edi
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor ebx, eax
xor r14d, eax
movzx eax, dl
lea rdx, [0x140000000]
mov eax, dword [rdx + rax*4 + 0x136f20]
xor ebx, eax
xor r11d, eax
mov eax, dword [rsp + 0x78]
xor r8, rax
mov rax, r8
shr rax, 0x18
mov r10d, dword [rdx + rax*4 + 0x1366b0]
xor edi, r10d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov edx, dword [rdx + rcx*4 + 0x136ad0]
mov rax, r8
shr rax, 8
xor ebp, edx
movzx ecx, al
lea rax, [0x140000000]
mov eax, dword [rax + rcx*4 + 0x137360]
xor eax, edx
mov ecx, dword [rsp + 0x3c]
xor r10d, eax
lea rdx, [0x140000000]
movzx eax, r8b
mov eax, dword [rdx + rax*4 + 0x136f20]
xor r10d, eax
xor r11d, eax
mov eax, r9d
xor rcx, rax
mov eax, r12d
movzx r8d, cl
mov ecx, dword [rsp + 0x30]
xor rcx, rax
mov eax, r15d
and ecx, 0xff0000
or r8, rcx
mov ecx, dword [rsp]
xor rcx, rax
mov eax, r13d
and ecx, 0xff00
mov r13d, 0xff000000
or r8, rcx
mov ecx, dword [rsp + 0x40]
xor rcx, rax
and rcx, r13
or r8, rcx
mov rax, r8
shr rax, 0x18
mov r9d, dword [rdx + rax*4 + 0x1366b0]
xor edi, r9d
mov rax, r8
shr rax, 0x10
movzx ecx, al
mov eax, dword [rdx + rcx*4 + 0x136ad0]
xor r9d, eax
xor ebp, eax
mov rax, r8
shr rax, 8
mov r15d, ebp
movzx ecx, al
shl r15d, 8
xor r15d, r10d
movzx eax, r8b
and r15d, 0xff0000
mov edx, dword [rdx + rcx*4 + 0x137360]
xor r14d, edx
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x136f20]
xor eax, edx
xor r9d, eax
mov eax, r11d
xor eax, r9d
movzx ecx, al
mov eax, ebp
xor eax, ebx
and eax, 0xff0000
or ecx, eax
mov eax, r14d
xor eax, r10d
and eax, 0xff00
or ecx, eax
mov eax, edi
xor eax, esi
and eax, r13d
or ecx, eax
mov eax, r11d
shr eax, 0x18
xor eax, esi
mov dword [rsp + 0x24], ecx
movzx eax, al
or r15d, eax
mov eax, r14d
shl eax, 8
mov r8, qword [rsp + 0xf8]
xor eax, r9d
and eax, 0xff00
mov r12d, ebp
or r15d, eax
shl r12d, 0x10
xor r12d, r9d
shr ebp, 8
mov eax, edi
and r12d, 0xff0000
shl eax, 8
xor ebp, esi
xor eax, ebx
and ebp, 0xff0000
and eax, r13d
or r15d, eax
mov eax, r11d
shr eax, 0x10
xor eax, ebx
shr r11d, 8
movzx eax, al
xor r11d, r10d
or r12d, eax
mov dword [rsp + 0x58], r15d
mov eax, edi
shl edi, 0x18
shl eax, 0x10
xor edi, r9d
mov r9, qword [rsp + 0x100]
xor eax, r10d
and eax, r13d
movzx r10d, r11b
or r12d, eax
or r10d, ebp
mov ebp, dword [rsp + 0x108]
mov eax, r14d
shr eax, 0x10
and edi, r13d
mov r13d, dword [rsp + 0x74]
xor eax, esi
mov esi, dword [rsp + 0x1c]
and eax, 0xff00
shr r14d, 8
or r10d, edi
xor r14d, ebx
or r12d, eax
and r14d, 0xff00
mov dword [rsp + 0x78], r12d
or r10d, r14d
mov dword [rsp + 0x40], r10d
cmp r9, 4
jbe 0x14005b244
mov edx, dword [r8]
add r8, 4
rol edx, 0x10
mov eax, edx
mov qword [rsp + 0xf8], r8
shr eax, 8
mov ecx, edx
shl ecx, 8
xor eax, ecx
shl edx, 8
and eax, 0xff00ff
xor eax, edx
sub r9, 4
mov qword [rsp + 0x100], r9
jmp 0x14005925b
mov rcx, qword [rsp + 0xf0]
xor edx, edx
mov edi, dword [rsp + 0x18]
mov r11d, edx
mov esi, dword [rsp + 0x1c]
mov r13d, dword [rsp + 0x74]
mov r14d, dword [rsp + 0x48]
jmp 0x14005b27f
mov r12d, dword [rsp + 0x70]
mov r11d, 2
mov ebx, dword [rsp + 0x14]
mov edi, dword [rsp + 0x18]
jmp 0x14005b266
mov ebp, dword [rsp + 0x108]
mov r11d, 1
mov r14d, dword [rsp + 0x48]
xor edx, edx
mov r15d, dword [rsp + 0x4c]
mov rcx, qword [rsp + 0xf0]
mov r10d, dword [rsp + 4]
mov dword [rcx + 4], r9d
test r9, r9
je 0x14005b2a3
nop dword [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
shl edx, 8
or edx, eax
sub r9, 1
jne 0x14005b290
mov dword [rcx], edx
mov dword [rcx + 8], r11d
mov eax, dword [rsp + 0x20]
mov edx, dword [rsp + 0x80]
mov dword [rcx + 0xc], eax
mov eax, dword [rsp + 0x7c]
mov dword [rcx + 0x20], eax
mov eax, dword [rsp + 0x34]
mov dword [rcx + 0x24], eax
mov eax, dword [rsp + 0x50]
mov dword [rcx + 0x28], eax
mov eax, dword [rsp + 0x54]
mov dword [rcx + 0x2c], eax
mov eax, dword [rsp + 0x24]
mov dword [rcx + 0x3c], eax
mov eax, dword [rsp + 0x58]
mov dword [rcx + 0x40], eax
mov eax, dword [rsp + 0x78]
mov dword [rcx + 0x44], eax
mov eax, dword [rsp + 0x40]
mov dword [rcx + 0x48], eax
mov eax, dword [rsp + 0x5c]
mov dword [rcx + 0x4c], eax
mov eax, dword [rsp + 0x88]
mov dword [rcx + 0x50], eax
mov eax, dword [rsp + 8]
mov dword [rcx + 0x54], eax
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0x58], eax
mov eax, dword [rsp + 0x64]
mov dword [rcx + 0x5c], eax
mov eax, dword [rsp + 0x28]
mov dword [rcx + 0x30], edx
mov edx, dword [rsp + 0x84]
mov dword [rcx + 0x6c], eax
mov eax, dword [rsp + 0x10]
mov dword [rcx + 0x38], edx
mov edx, dword [rsp + 0x8c]
mov dword [rcx + 0x78], eax
mov eax, dword [rsp + 0x94]
mov dword [rcx + 0x60], edx
mov edx, dword [rsp + 0x60]
mov dword [rcx + 0x80], eax
mov eax, dword [rsp + 0xc]
mov dword [rcx + 0x64], edx
mov edx, dword [rsp + 0x90]
mov dword [rcx + 0x84], eax
mov eax, dword [rsp + 0x2c]
mov dword [rcx + 0x68], edx
mov edx, dword [rsp + 0x38]
mov dword [rcx + 0x88], eax
mov eax, dword [rsp + 0x6c]
mov dword [rcx + 0x90], edx
mov edx, dword [rsp + 0x98]
mov dword [rcx + 0x10], r12d
mov r12, qword [rsp + 0xc0]
mov dword [rcx + 0x14], r15d
mov r15, qword [rsp + 0xa8]
mov dword [rcx + 0x1c], ebx
mov rbx, qword [rsp + 0xe0]
mov dword [rcx + 0x34], edi
mov rdi, qword [rsp + 0xc8]
mov dword [rcx + 0x70], r13d
mov r13, qword [rsp + 0xb8]
mov dword [rcx + 0x74], r14d
mov r14, qword [rsp + 0xb0]
mov dword [rcx + 0x7c], esi
mov rsi, qword [rsp + 0xd0]
mov dword [rcx + 0x94], ebp
mov rbp, qword [rsp + 0xd8]
mov dword [rcx + 0x8c], eax
mov dword [rcx + 0x18], r10d
mov dword [rcx + 0x98], edx
add rsp, 0xe8
ret