Function at 0x41064f
Capabilities:
Encrypt data using speck

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa48
movaps xmmword [rsp + 0xa30], xmm6
mov rdi, qword [rcx]
mov qword [rsp + 0x258], rcx
mov r14, qword [rcx + 0x10]
lea rcx, [rsp + 0x50]
mov rdx, rdi
mov r8, r14
call fcn.00434176
lea rax, [0x006bb105]
lea rsi, [rsp + 0x2a0]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x3ac88c8fc70a50b6
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00404203
pxor xmm0, xmm0
movdqu xmmword [rsi + 0xc], xmm0
movdqa xmmword [rsi], xmm0
xor edx, edx
lea rcx, [0x006bc23f]
cmp rdx, 0x18
jae 0x4106e5
mov r8, qword [rdx + rcx]
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x2a0], r8
add rdx, 8
jmp 0x4106c9
mov edx, 0x18
cmp rdx, 0x1b
ja 0x41071b
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0x33000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x2a0], r8d
add rdx, 4
jmp 0x4106ea
mov al, byte [rax + 0x1c]
xor al, 0x22
mov byte [rsp + 0x2bc], al
movdqa xmm0, xmmword [rsp + 0x2a0]
lea rcx, [rsp + 0x510]
movdqa xmmword [rcx], xmm0
mov rax, qword [rsp + 0x2ad]
mov qword [rcx + 0xd], rax
mov eax, dword [rsp + 0x2b5]
mov dword [rcx + 0x15], eax
movzx eax, word [rsp + 0x2b9]
mov word [rcx + 0x19], ax
mov al, byte [rsp + 0x2bb]
mov byte [rcx + 0x1b], al
mov al, byte [rsp + 0x2bc]
mov byte [rcx + 0x1c], al
mov edx, 0x1d
call fcn.00401c10
test al, al
je 0x410e24
lea rax, [0x006b34a2]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0x1c59593d4638ac15
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.00405ac7
and dword [rsp + 0x2a0], 0
mov byte [rsp + 0x2a4], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc25c]
test r8b, 1
je 0x410830
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
mov r11, rcx
or r11, 3
movzx r10d, byte [r10 + rdx]
movzx r11d, byte [r11 + rdx]
shl r11d, 0x18
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
or r9d, r10d
or r9d, r11d
xor r9d, dword [rax + rcx]
mov dword [rsp + rcx + 0x2a0], r9d
mov ecx, 4
xor r8d, r8d
jmp 0x4107d6
mov al, byte [rax + 4]
xor al, 0xc3
lea rsi, [rsp + 0x2a0]
mov ecx, dword [rsi]
lea rdx, [rsp + 0x170]
mov byte [rdx + 4], al
mov dword [rdx], ecx
lea rax, [rsp + 0x790]
mov qword [rax], rdx
mov qword [rax + 8], 5
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x510], rcx
lea rcx, [0x00402ee3]
mov qword [rsp + 0x518], rcx
mov qword [rsp + 0x520], rax
lea rax, [0x006c0110]
mov qword [rsi], rax
mov qword [rsi + 8], 3
and qword [rsi + 0x20], 0
lea rax, [fcn.0047688f]
mov qword [rsp + 0x528], rax
lea rax, [rsp + 0x510]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], 2
lea rbx, [rsp + 0xd8]
mov rcx, rbx
mov rdx, rsi
call fcn.004027ba
mov rcx, rbx
call fcn.0045559d
mov rcx, rax
call fcn.00458a41
lea rax, [0x006b7c09]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0xb1522812974f1b13
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00406746
pxor xmm0, xmm0
movdqu xmmword [rsi + 0xc], xmm0
movdqa xmmword [rsi], xmm0
xor edx, edx
lea rcx, [0x006bc261]
cmp rdx, 0x18
jae 0x410934
mov r8, qword [rdx + rcx]
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x2a0], r8
add rdx, 8
jmp 0x410918
mov edx, 0x18
cmp rdx, 0x1b
ja 0x41096a
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0xa5000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x2a0], r8d
add rdx, 4
jmp 0x410939
mov qword [rsp + 0x40], r14
mov qword [rsp + 0x48], rdi
mov al, byte [rax + 0x1c]
xor al, 0xb9
lea r12, [rsp + 0x2a0]
mov byte [r12 + 0x1c], al
movaps xmm0, xmmword [r12]
movaps xmmword [rsp + 0x170], xmm0
mov rax, qword [r12 + 0xd]
mov qword [rsp + 0x17d], rax
mov eax, dword [r12 + 0x15]
mov dword [rsp + 0x185], eax
movzx eax, word [r12 + 0x19]
mov word [rsp + 0x189], ax
mov al, byte [r12 + 0x1b]
mov byte [rsp + 0x18b], al
mov al, byte [r12 + 0x1c]
mov byte [rsp + 0x18c], al
mov ecx, 0x1d
xor edx, edx
call fcn.00433a18
movaps xmm0, xmmword [rsp + 0x170]
movups xmmword [rax], xmm0
movdqu xmm0, xmmword [rsp + 0x17d]
movdqu xmmword [rax + 0xd], xmm0
and qword [r12 + 0x10], 0
mov qword [r12 + 0x20], 0xa
and qword [r12 + 0x28], 0
mov qword [r12 + 0x30], 1
mov dword [r12 + 0x38], 0x100
pxor xmm0, xmm0
movdqu xmmword [r12 + 0x68], xmm0
movdqu xmmword [r12 + 0x80], xmm0
movdqu xmmword [r12 + 0x98], xmm0
mov qword [r12 + 0x40], rax
mov qword [r12 + 0x48], rdx
mov qword [r12 + 0x50], 0x1d
mov byte [r12 + 0x58], 0
mov eax, 8
mov qword [r12 + 0x60], rax
mov qword [r12 + 0x78], rax
movdqu xmmword [r12 + 0xa8], xmm0
mov qword [r12 + 0x90], rax
and qword [r12], 0
lea rbp, [rsp + 0x790]
lea rdi, [0x006bc23b]
lea r15, [0x006bc283]
mov rcx, rbp
mov rdx, r12
call fcn.0058cada
cmp dword [rsp + 0x790], 3
je 0x410e00
lea rcx, [rsp + 0x510]
mov rdx, rbp
call fcn.004026c6
cmp dword [rsp + 0x510], 2
je 0x410a92
mov rsi, qword [rsp + 0x558]
mov rax, qword [rsp + 0x560]
mov qword [rsp + 0x38], rax
mov rbx, qword [rsp + 0x568]
mov rcx, rsi
mov rdx, rbx
call fcn.0058f826
mov rcx, rax
call fcn.00401bdf
test rax, rax
je 0x410c62
mov r14, rax
mov r13, rdx
lea rax, [0x006ba03d]
mov qword [rsp + 0x510], rax
lea rax, [rsp + 0x510]
mov rcx, qword [rsp + 0x510]
movabs rdx, 0x790bd8b7ebc30b08
mov qword [rsp + 0x510], rdx
mov rdx, qword [rsp + 0x510]
call fcn.00406eba
and dword [rsp + 0x510], 0
mov dl, 1
xor ecx, ecx
test dl, 1
je 0x410b97
movzx edx, byte [rcx + rdi]
mov r8, rcx
or r8, 1
movzx r8d, byte [r8 + rdi]
mov r9, rcx
or r9, 2
movzx r9d, byte [r9 + rdi]
shl r9d, 0x10
shl r8d, 8
or r8d, edx
lea edx, [r9 + r8]
add edx, 0x63000000
xor edx, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], edx
mov ecx, 4
xor edx, edx
jmp 0x410b4e
mov r9d, 4
mov rcx, r14
mov rdx, r13
lea r8, [rsp + 0x510]
call fcn.00563284
test al, al
je 0x410c62
lea rax, [0x006adac8]
mov qword [rsp + 0x510], rax
lea rax, [rsp + 0x510]
mov rcx, qword [rsp + 0x510]
movabs rdx, 0x4e60aa94aa013976
mov qword [rsp + 0x510], rdx
mov rdx, qword [rsp + 0x510]
call fcn.004040a0
and dword [rsp + 0x510], 0
mov byte [rsp + 0x514], 0
mov dl, 1
xor ecx, ecx
test dl, 1
je 0x410c74
movzx edx, byte [rcx + r15]
mov r8, rcx
or r8, 1
movzx r8d, byte [r8 + r15]
mov r9, rcx
or r9, 2
mov r10, rcx
or r10, 3
movzx r9d, byte [r9 + r15]
movzx r10d, byte [r10 + r15]
shl r10d, 0x18
shl r9d, 0x10
shl r8d, 8
or r8d, edx
or r8d, r9d
or r8d, r10d
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor edx, edx
jmp 0x410c0a
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
call fcn.00433bdd
jmp 0x410a92
mov al, byte [rax + 4]
xor al, 0x71
mov ecx, dword [rsp + 0x510]
mov byte [rsp + 0x15c], al
mov dword [rsp + 0x158], ecx
lea rax, [rsp + 0x158]
mov qword [rsp + 0x200], rax
mov qword [rsp + 0x208], 5
mov rcx, rsi
mov rdx, rbx
call fcn.0058f826
mov rcx, rax
call fcn.00401bdf
test rax, rax
je 0x41412d
mov qword [rsp + 0x260], rax
mov qword [rsp + 0x268], rdx
lea rax, [rsp + 0x50]
mov qword [rsp + 0x510], rax
lea rax, [0x00402ee3]
mov qword [rsp + 0x518], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x520], rax
lea rcx, [fcn.0047688f]
mov qword [rsp + 0x528], rcx
lea rax, [0x006c0110]
mov qword [rsp + 0x790], rax
mov edx, 3
mov qword [rsp + 0x798], rdx
and qword [rsp + 0x7b0], 0
lea rax, [rsp + 0x260]
mov qword [rsp + 0x530], rax
mov qword [rsp + 0x538], rcx
lea r12, [rsp + 0x510]
mov qword [rsp + 0x7a0], r12
mov qword [rsp + 0x7a8], rdx
lea rcx, [rsp + 0x90]
mov rdx, rbp
call fcn.004027ba
mov r14, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
mov rcx, r12
mov rdx, rsi
mov r8, rbx
mov r9, r14
call fcn.0045569b
mov rcx, qword [rsp + 0x510]
mov rdx, qword [rsp + 0x518]
call fcn.004026a4
mov rbx, rax
mov rcx, r14
mov rdx, r13
call fcn.00433bdd
mov rcx, rsi
mov rdx, qword [rsp + 0x38]
call fcn.00433bdd
test rbx, rbx
lea r12, [rsp + 0x2a0]
jne 0x410a92
lea rcx, [rsp + 0x2a0]
call fcn.00401fb7
xor esi, esi
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
jmp 0x410e3e
lea rcx, [rsp + 0x790]
call fcn.00401e0a
lea rcx, [rsp + 0x2a0]
call fcn.00401fb7
mov rdi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x40]
mov ecx, 5
call fcn.00550fc6
mov rsi, rax
mov rbx, rdx
mov dword [rax], 0x61657453
mov byte [rax + 4], 0x6d
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
call fcn.00433bdd
mov rcx, rsi
mov rdx, rbx
call fcn.0055f979
lea rcx, [rsp + 0x288]
mov rdx, rdi
mov r8, r14
call fcn.00434176
lea rdx, [0x006bc288]
lea rsi, [rsp + 0x2a0]
mov r8d, 4
mov rcx, rsi
call fcn.00577142
cmp byte [rsi + 0x18], 3
jne 0x41412d
mov rax, qword [rsp + 0x2b0]
lea rcx, [rsp + 0x790]
mov qword [rcx + 0x10], rax
movdqu xmm0, xmmword [rsp + 0x2a0]
movdqa xmmword [rcx], xmm0
mov qword [rsp + 0x50], rcx
lea rax, [0x006b93d1]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0x6a75fae354039730
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.004064ad
and dword [rsp + 0x2a8], 0
and qword [rsp + 0x2a0], 0
mov r8b, 1
xor edx, edx
lea rcx, [0x006bc28c]
test r8b, 1
je 0x410fb5
movzx r9d, byte [rdx + rcx]
mov r8, rdx
or r8, 1
movzx r8d, byte [r8 + rcx]
mov r10, rdx
or r10, 2
movzx r10d, byte [r10 + rcx]
mov r11, rdx
or r11, 3
movzx r11d, byte [r11 + rcx]
mov rsi, rdx
or rsi, 4
movzx esi, byte [rsi + rcx]
mov rdi, rdx
or rdi, 5
movzx edi, byte [rdi + rcx]
mov rbx, rdx
or rbx, 6
mov r14, rdx
or r14, 7
movzx ebx, byte [rbx + rcx]
movzx r14d, byte [r14 + rcx]
shl r14, 0x38
shl rbx, 0x30
or rbx, r14
shl rdi, 0x28
shl rsi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rsi
or r8, rdi
or r8, rbx
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x2a0], r8
mov edx, 8
xor r8d, r8d
jmp 0x410f0b
mov edx, 8
cmp rdx, 0xb
ja 0x410feb
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0xae000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x2a0], r8d
add rdx, 4
jmp 0x410fba
mov al, byte [rax + 0xc]
xor al, 0x3f
lea rbx, [rsp + 0x2a0]
mov byte [rbx + 0xc], al
mov rax, qword [rbx]
lea rcx, [rsp + 0xd8]
mov qword [rcx], rax
mov rax, qword [rbx + 5]
mov qword [rcx + 5], rax
lea rax, [rsp + 0x90]
mov qword [rax], rcx
mov qword [rax + 8], 0xd
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x510], rcx
lea rcx, [0x0055fc5a]
mov qword [rsp + 0x518], rcx
mov qword [rsp + 0x520], rax
lea rax, [0x006bfea8]
mov qword [rbx], rax
mov eax, 2
mov qword [rbx + 8], rax
and qword [rbx + 0x20], 0
lea rcx, [fcn.0047688f]
mov qword [rsp + 0x528], rcx
lea rcx, [rsp + 0x510]
mov qword [rbx + 0x10], rcx
mov qword [rbx + 0x18], rax
lea rsi, [rsp + 0x170]
mov rcx, rsi
mov rdx, rbx
call fcn.004027ba
mov rcx, qword [rsp + 0x790]
mov rdx, qword [rsp + 0x798]
call fcn.00433bdd
and dword [rbx], 0
mov rdx, qword [rsi]
and dword [rbx + 0x20], 0
mov rax, qword [rsi + 8]
mov qword [rsp + 0x40], rax
and word [rbx + 0x24], 0
mov r8, qword [rsi + 0x10]
mov qword [rbx + 0x18], 7
xorps xmm6, xmm6
movups xmmword [rbx + 8], xmm6
mov r15b, 1
mov byte [rbx + 0x21], r15b
mov byte [rbx + 0x24], r15b
mov byte [rbx + 0x23], r15b
lea rcx, [rsp + 0x2a0]
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x1f0], r8
call fcn.0056be48
test rax, rax
jne 0x41412d
lea rcx, [rsp + 0x2a0]
call fcn.005986fe
lea rdi, [rsp + 0x510]
mov rcx, rdi
call fcn.00594faf
mov eax, dword [rdi]
mov dword [rsp + 0x11c], eax
mov eax, dword [rdi + 4]
mov dword [rsp + 0x118], eax
mov r14d, dword [rdi + 8]
mov ebp, dword [rdi + 0xc]
mov eax, dword [rdi + 0x10]
mov dword [rsp + 0x114], eax
mov rax, qword [rdi + 0x14]
mov qword [rsp + 0x120], rax
mov eax, dword [rdi + 0x1c]
mov dword [rsp + 0x128], eax
movzx eax, word [rdi + 0x22]
mov word [rsp + 0x8e], ax
mov rax, qword [rdi + 0x24]
mov qword [rsp + 0x788], rax
mov al, byte [rdi + 0x2c]
mov byte [rsp + 0x37], al
mov qword [rsp + 0x158], 8
movups xmmword [rsp + 0x160], xmm6
lea rax, [0x006b2ebe]
mov qword [rdi], rax
mov rcx, qword [rdi]
movabs rax, 0xe7dff629259a1baf
mov qword [rdi], rax
mov rdx, qword [rdi]
call fcn.00406ac8
and qword [rdi], 0
xor ecx, ecx
lea rdx, [0x006bc2c8]
test r15b, 1
je 0x41126b
movzx r9d, byte [rcx + rdx]
mov r8, rcx
or r8, 1
movzx r8d, byte [r8 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
mov r11, rcx
or r11, 3
movzx r11d, byte [r11 + rdx]
mov rdi, rcx
or rdi, 4
movzx edi, byte [rdi + rdx]
mov rbx, rcx
or rbx, 5
movzx ebx, byte [rbx + rdx]
mov r15, rcx
or r15, 6
mov r12, rcx
or r12, 7
movzx r15d, byte [r15 + rdx]
movzx r12d, byte [r12 + rdx]
shl r12, 0x38
shl r15, 0x30
or r15, r12
shl rbx, 0x28
shl rdi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rdi
or r8, rbx
or r8, r15
xor r8, qword [rax + rcx]
mov qword [rsp + rcx + 0x510], r8
mov ecx, 8
xor r15d, r15d
jmp 0x4111c0
movzx ecx, byte [rax + 0xa]
movzx eax, word [rax + 8]
xor eax, 0x4075
lea rdi, [rsp + 0x510]
mov word [rdi + 8], ax
xor cl, 0x63
mov byte [rdi + 0xa], cl
mov rax, qword [rdi]
lea rdx, [rsp + 0x90]
mov qword [rdx], rax
mov eax, dword [rdi + 7]
mov dword [rdx + 7], eax
mov r8d, 0xb
mov rcx, rdi
call fcn.00577142
cmp byte [rdi + 0x18], 3
jne 0x41412d
lea rdi, [rsp + 0x510]
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x7a0], rax
movdqu xmm0, xmmword [rdi]
movdqa xmmword [rsp + 0x790], xmm0
lea rax, [rsp + 0x790]
mov qword [rsp + 0x170], rax
lea rax, [0x006bc2a8]
mov qword [rdi], rax
mov qword [rdi + 8], 2
and qword [rdi + 0x20], 0
lea rax, [0x00402ee3]
mov qword [rsp + 0x178], rax
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], 1
lea rbx, [rsp + 0x200]
mov rcx, rbx
mov rdx, rdi
call fcn.004027ba
mov rcx, qword [rsp + 0x790]
mov rdx, qword [rsp + 0x798]
call fcn.00433bdd
lea rcx, [rsp + 0x158]
mov rdx, rbx
call fcn.00402bd2
lea rax, [0x006b53a5]
mov qword [rdi], rax
mov rcx, qword [rdi]
movabs rax, 0x8cc8ce1a2958579c
mov qword [rdi], rax
mov rdx, qword [rdi]
call fcn.00404907
and qword [rdi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc300]
test r8b, 1
je 0x41142e
movzx r9d, byte [rcx + rdx]
mov r8, rcx
or r8, 1
movzx r8d, byte [r8 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
mov r11, rcx
or r11, 3
movzx r11d, byte [r11 + rdx]
mov rdi, rcx
or rdi, 4
movzx edi, byte [rdi + rdx]
mov rbx, rcx
or rbx, 5
movzx ebx, byte [rbx + rdx]
mov r15, rcx
or r15, 6
mov r12, rcx
or r12, 7
movzx r15d, byte [r15 + rdx]
movzx r12d, byte [r12 + rdx]
shl r12, 0x38
shl r15, 0x30
or r15, r12
shl rbx, 0x28
shl rdi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rdi
or r8, rbx
or r8, r15
xor r8, qword [rax + rcx]
mov qword [rsp + rcx + 0x510], r8
mov ecx, 8
xor r8d, r8d
jmp 0x411383
movzx ecx, byte [rax + 0xa]
movzx eax, word [rax + 8]
xor eax, 0xa8a6
lea rdi, [rsp + 0x510]
mov word [rdi + 8], ax
xor cl, 0xb2
mov byte [rdi + 0xa], cl
mov rax, qword [rdi]
lea rdx, [rsp + 0x90]
mov qword [rdx], rax
mov eax, dword [rdi + 7]
mov dword [rdx + 7], eax
mov r8d, 0xb
mov rcx, rdi
call fcn.00577142
cmp byte [rdi + 0x18], 3
jne 0x41412d
lea rdi, [rsp + 0x510]
mov rax, qword [rdi + 0x10]
mov qword [rsp + 0x7a0], rax
movdqu xmm0, xmmword [rdi]
movdqa xmmword [rsp + 0x790], xmm0
lea rax, [0x006bc2e0]
mov qword [rdi], rax
mov qword [rdi + 8], 2
and qword [rdi + 0x20], 0
lea rax, [rsp + 0x790]
mov qword [rsp + 0x170], rax
lea rax, [0x00402ee3]
mov qword [rsp + 0x178], rax
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], 1
lea rsi, [rsp + 0x260]
mov rcx, rsi
mov rdx, rdi
call fcn.004027ba
mov rcx, qword [rsp + 0x790]
mov rdx, qword [rsp + 0x798]
call fcn.00433bdd
lea rcx, [rsp + 0x158]
mov rdx, rsi
call fcn.00402bd2
mov qword [rsp + 0x50], 8
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x58], xmm0
lea rax, [0x006b2fff]
mov qword [rdi], rax
mov rcx, qword [rdi]
movabs rax, 0x3591f29a75a1406d
mov qword [rdi], rax
mov rdx, qword [rdi]
call fcn.004050e4
and dword [rdi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc30b]
test r8b, 1
je 0x4115a7
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0xc8000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411558
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006b264d]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x718b5f89c606eafb
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00406c8f
and dword [rsi], 0
mov byte [rsi + 4], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc30f]
test r8b, 1
je 0x411668
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
mov r11, rcx
or r11, 3
movzx r10d, byte [r10 + rdx]
movzx r11d, byte [r11 + rdx]
shl r11d, 0x18
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
or r9d, r10d
or r9d, r11d
xor r9d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r9d
mov ecx, 4
xor r8d, r8d
jmp 0x41160e
mov bl, byte [rax + 4]
xor bl, 4
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 5
call fcn.00550fc6
mov byte [rax + 4], bl
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 5
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006bc554]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x4dd60fd47d709be9
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00404645
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc314]
test r8b, 1
je 0x411723
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0x99000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x4116d4
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006b1906]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x3169f1a48e06e964
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00405994
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc318]
test r8b, 1
je 0x4117d5
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0x68000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411786
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006afe75]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x990210aa4cb1c12c
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.0040641e
and dword [rsi], 0
mov byte [rsi + 4], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc31c]
test r8b, 1
je 0x411896
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
mov r11, rcx
or r11, 3
movzx r10d, byte [r10 + rdx]
movzx r11d, byte [r11 + rdx]
shl r11d, 0x18
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
or r9d, r10d
or r9d, r11d
xor r9d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r9d
mov ecx, 4
xor r8d, r8d
jmp 0x41183c
mov bl, byte [rax + 4]
xor bl, 0xd2
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 5
call fcn.00550fc6
mov byte [rax + 4], bl
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 5
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006b4efe]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0xfdeead7d1ab83cd8
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00404370
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc321]
test r8b, 1
je 0x411951
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0x2000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411902
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006b99ab]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x55d2e24a75eafb9f
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.004042c0
and dword [rsi], 0
mov byte [rsi + 4], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc325]
test r8b, 1
je 0x411a12
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
mov r11, rcx
or r11, 3
movzx r10d, byte [r10 + rdx]
movzx r11d, byte [r11 + rdx]
shl r11d, 0x18
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
or r9d, r10d
or r9d, r11d
xor r9d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r9d
mov ecx, 4
xor r8d, r8d
jmp 0x4119b8
mov bl, byte [rax + 4]
xor bl, 0x89
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 5
call fcn.00550fc6
mov byte [rax + 4], bl
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 5
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006bb991]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0xdf8baea18b66e2f9
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.004041d8
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, str._e_F
test r8b, 1
je 0x411acd
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0x46000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411a7e
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006bc533]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x9866db044cf523a5
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00406d25
and dword [rsi], 0
mov byte [rsi + 4], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc32e]
test r8b, 1
je 0x411b8e
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
mov r11, rcx
or r11, 3
movzx r10d, byte [r10 + rdx]
movzx r11d, byte [r11 + rdx]
shl r11d, 0x18
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
or r9d, r10d
or r9d, r11d
xor r9d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r9d
mov ecx, 4
xor r8d, r8d
jmp 0x411b34
mov bl, byte [rax + 4]
add bl, 0x80
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 5
call fcn.00550fc6
mov byte [rax + 4], bl
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 5
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006bc74f]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x2855a58f4388af2b
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.004071ee
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc333]
test r8b, 1
je 0x411c49
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0xc2000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411bfa
lea rsi, [rsp + 0x510]
mov edi, dword [rsi]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], edi
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rsi
call fcn.00402bd2
lea rax, [0x006ae220]
mov qword [rsi], rax
mov rcx, qword [rsi]
movabs rax, 0x346fa7d3d2b91857
mov qword [rsi], rax
mov rdx, qword [rsi]
call fcn.00406932
and dword [rsi], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc337]
test r8b, 1
je 0x411cfb
movzx r8d, byte [rcx + rdx]
mov r9, rcx
or r9, 1
movzx r9d, byte [r9 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
shl r10d, 0x10
shl r9d, 8
or r9d, r8d
lea r8d, [r10 + r9]
add r8d, 0xd1000000
xor r8d, dword [rax + rcx]
mov dword [rsp + rcx + 0x510], r8d
mov ecx, 4
xor r8d, r8d
jmp 0x411cac
lea rbx, [rsp + 0x510]
mov esi, dword [rbx]
mov ecx, 4
call fcn.00550fc6
mov dword [rax], esi
mov qword [rbx], rax
mov qword [rbx + 8], rdx
mov qword [rbx + 0x10], 4
lea rcx, [rsp + 0x50]
mov rdx, rbx
call fcn.00402bd2
mov rax, qword [rsp + 0x158]
imul rsi, qword [rsp + 0x168], 0x18
mov rcx, qword [rsp + 0x160]
add rsi, rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rsi
shl ebp, 0x10
or ebp, 0x80000000
test r14d, r14d
mov ecx, 0x81a40000
cmovne ecx, ebp
mov dword [rsp + 0x1fc], ecx
mov edx, 0x88
lea rcx, [rsp + 0x790]
add rcx, rdx
mov qword [rsp + 0x780], rcx
lea rcx, [rsp + 0x2a0]
add rdx, rcx
mov qword [rsp + 0x778], rdx
xorps xmm6, xmm6
lea r15, [rsp + 0x170]
cmp rax, rsi
je 0x412554
lea r14, [rax + 0x18]
mov qword [rsp + 0xa0], r14
mov r12, qword [rax]
test r12, r12
je 0x412554
mov rcx, qword [rax + 8]
mov qword [rsp + 0x48], rcx
mov rdi, qword [rax + 0x10]
mov rcx, r12
mov rdx, rdi
call fcn.00401c10
test al, al
mov qword [rsp + 0x38], r12
je 0x41253d
mov rcx, rdi
xor edx, edx
call fcn.00433a18
mov rsi, rax
mov r14, rdx
mov rcx, rax
mov rdx, r12
mov r8, rdi
call sub.ntdll.dll_memcpy
mov eax, dword [rsp + 0x790]
mov ecx, dword [rsp + 0x793]
mov dword [rbx + 0x5c], ecx
mov dword [rbx + 0x59], eax
movups xmmword [rbx + 0x68], xmm6
movups xmmword [rbx + 0x80], xmm6
movups xmmword [rbx + 0xa8], xmm6
movups xmmword [rbx + 0x98], xmm6
movaps xmmword [rsp + 0x510], xmm6
and qword [rsp + 0x520], 0
mov qword [rsp + 0x530], 0xa
and qword [rsp + 0x538], 0
mov qword [rsp + 0x540], 1
mov dword [rsp + 0x548], 0x100
mov qword [rsp + 0x550], rsi
mov qword [rsp + 0x558], r14
mov qword [rsp + 0x560], rdi
mov byte [rsp + 0x568], 0
mov eax, 8
mov qword [rsp + 0x570], rax
mov qword [rsp + 0x588], rax
mov qword [rsp + 0x5a0], rax
lea rsi, [rsp + 0x790]
mov rcx, r15
mov rdx, rbx
call fcn.0058cada
cmp dword [rsp + 0x170], 3
je 0x41251d
mov rcx, rsi
mov rdx, r15
call fcn.004026c6
cmp dword [rsp + 0x790], 2
je 0x411ecd
mov rbp, qword [rsp + 0x7d8]
mov r13, qword [rsp + 0x7e0]
mov rdi, qword [rsp + 0x7e8]
mov rcx, rbp
mov rdx, rdi
call fcn.0056bdcb
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], rdx
test rax, rax
jne 0x412505
mov rcx, rsi
call fcn.0056be07
mov rsi, qword [rsp + 0x790]
cmp rsi, 2
jne 0x411f63
lea rax, [rsp + 0xe0]
movups xmmword [rax], xmm6
mov r15d, 1
xor r14d, r14d
jmp 0x411f89
mov rcx, qword [rsp + 0x7c8]
xor edx, edx
call fcn.00433a18
mov r15, rax
mov r14, rdx
mov qword [rsp + 0xe0], rdx
and qword [rsp + 0xe8], 0
mov qword [rsp + 0xd8], r15
mov rdx, qword [rsp + 0x798]
mov rcx, rsi
call fcn.0040261c
mov rbx, qword [rsp + 0x50]
imul rsi, qword [rsp + 0x60], 0x18
test rsi, rsi
je 0x411ff4
mov rcx, rbp
mov rdx, rdi
call fcn.0058f826
mov rcx, rax
call fcn.00401bdf
test rax, rax
je 0x41412d
lea r12, [rbx + 0x18]
mov r8, qword [rbx]
mov r9, qword [rbx + 0x10]
mov rcx, rax
call fcn.0047b256
add rsi, 0xffffffffffffffe8
mov rbx, r12
test al, al
je 0x411fac
cmp r14, 0x200000
jb 0x41203c
mov rcx, r15
mov rdx, r14
call fcn.00433bdd
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
call fcn.004025fc
mov rcx, rbp
mov rdx, r13
call fcn.00433bdd
lea rsi, [rsp + 0x790]
lea rbx, [rsp + 0x510]
lea r15, [rsp + 0x170]
jmp 0x411ecd
inc qword [0x007e0030]
lea rsi, [rsp + 0x790]
mov rcx, rsi
lea rdx, [rsp + 0x148]
lea r8, [rsp + 0xd8]
call fcn.0056bfc5
cmp qword [rsp + 0x790], 0
je 0x412080
mov rcx, qword [rsp + 0x798]
call fcn.0040205b
jmp 0x4124d0
mov rcx, rbp
mov rdx, rdi
call fcn.0058f826
mov rcx, rax
call fcn.00401bdf
test rax, rax
je 0x41412d
mov rdi, rax
mov r14, rdx
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0x228], eax
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0x220], rax
mov rcx, rsi
lea rdx, [rsp + 0x2a0]
call fcn.00597e8e
mov r15, qword [rsp + 0x790]
cmp r15, 4
jne 0x4124b5
cmp dword [rsp + 0x2a0], 3
jne 0x41412d
cmp qword [rsp + 0x2a8], 0
jne 0x41412d
mov rdx, qword [rsp + 0x2b0]
mov rcx, rsi
call fcn.0059731e
cmp qword [rsp + 0x790], 0
je 0x41212a
mov rdi, qword [rsp + 0x798]
xor r15d, r15d
jmp 0x4124bd
mov rsi, qword [rsp + 0x798]
mov rcx, r14
call fcn.00550fc6
mov r12, rax
mov rbx, rdx
mov rcx, rax
mov rdx, rdi
mov r8, r14
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x798], r12
mov qword [rsp + 0x770], rbx
mov qword [rsp + 0x7a0], rbx
mov qword [rsp + 0x7a8], r14
lea rcx, [rsp + 0x7b8]
movups xmmword [rcx], xmm6
movups xmmword [rcx + 0x18], xmm6
movups xmmword [rcx + 0x30], xmm6
mov word [rsp + 0x839], 0x2e03
mov eax, dword [rsp + 0x114]
mov byte [rsp + 0x836], al
mov byte [rsp + 0x837], 0
and word [rsp + 0x828], 0
movzx eax, word [rsp + 0x8e]
mov word [rsp + 0x82a], ax
mov eax, dword [rsp + 0x11c]
mov dword [rsp + 0x790], eax
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x794], eax
mov rax, qword [rsp + 0x788]
mov qword [rsp + 0x7f8], rax
and dword [rsp + 0x82c], 0
movups xmmword [rcx + 0x48], xmm6
mov eax, 1
mov qword [rsp + 0x7b0], rax
mov qword [rsp + 0x7c8], rax
mov qword [rsp + 0x7e0], rax
mov qword [rsp + 0x810], rsi
lea rsi, [rsp + 0x790]
mov rax, qword [rsp + 0x780]
movups xmmword [rax], xmm6
mov eax, dword [rsp + 0x1fc]
mov dword [rsp + 0x830], eax
mov al, byte [rsp + 0x37]
mov byte [rsp + 0x838], al
mov byte [rsp + 0x835], 2
mov rdx, qword [rsp + 0x2b0]
lea rbx, [rsp + 0x170]
mov rcx, rbx
mov r8, rsi
call fcn.005958fd
mov r15, qword [rsp + 0x170]
cmp r15, 4
jne 0x41229c
mov rdx, qword [rsp + 0x2b0]
mov rcx, rbx
call fcn.0059731e
cmp qword [rsp + 0x170], 0
je 0x4122dd
mov rdi, qword [rsp + 0x178]
xor r15d, r15d
jmp 0x4122a4
mov rdi, qword [rsp + 0x178]
mov rcx, r12
mov rdx, qword [rsp + 0x770]
call fcn.00433bdd
mov ecx, 1
xor edx, edx
call fcn.00433bdd
mov ecx, 1
xor edx, edx
call fcn.00433bdd
mov ecx, 1
xor edx, edx
call fcn.00433bdd
jmp 0x4124bd
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x318], rax
mov qword [rsp + 0x820], rax
and qword [rsp + 0x320], 0
mov rcx, rbx
call fcn.0047c620
movdqu xmm0, xmmword [rsp + 0x170]
lea rax, [rsp + 0x308]
movdqu xmmword [rax], xmm0
mov rdx, qword [rsp + 0x338]
cmp rdx, qword [rsp + 0x330]
jne 0x412342
mov rcx, qword [rsp + 0x778]
call fcn.00598611
mov rdx, qword [rsp + 0x338]
lea rdi, [rsp + 0x2a0]
mov r14, qword [rsp + 0x250]
imul rcx, rdx, 0xb0
add rcx, qword [rsp + 0x328]
mov r8d, 0xb0
mov rdx, rsi
call sub.ntdll.dll_memcpy
inc qword [rsp + 0x338]
cmp dword [rsp + 0x114], 0
je 0x41244f
mov rdx, qword [rsp + 0x2a0]
mov rcx, qword [rsp + 0x2a8]
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0x2a0], 2
cmp rdx, 3
jne 0x41412d
test rcx, rcx
jne 0x41412d
lea rcx, [rsp + 0x7b8]
movups xmmword [rcx - 0x20], xmm6
mov qword [rsp + 0x7a8], rax
mov qword [rsp + 0x790], 1
mov eax, dword [rsp + 0x228]
mov dword [rcx], eax
mov rax, qword [rsp + 0x220]
and dword [rsp + 0x178], 0
mov qword [rcx - 8], rax
and qword [rsp + 0x170], 0
mov rcx, rsi
mov rdx, rbx
call fcn.00597b4d
mov rcx, rdi
call fcn.00402407
mov qword [rsp + 0x2a0], 3
movdqu xmm0, xmmword [rsp + 0x790]
movups xmm1, xmmword [rsp + 0x7a0]
movups xmm2, xmmword [rsp + 0x7b0]
lea rax, [rsp + 0x308]
movups xmmword [rax - 0x40], xmm2
movups xmmword [rax - 0x50], xmm1
movdqu xmmword [rax - 0x60], xmm0
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, rdi
xor r8d, r8d
mov r9d, dword [rsp + 0x11c]
call fcn.00595b9e
mov r15, qword [rsp + 0x790]
cmp r15, 4
jne 0x4124b5
mov byte [rsp + 0x358], 1
mov ecx, 4
mov rdx, r14
call fcn.004025d9
mov rdx, qword [rsp + 0xd8]
mov r8, qword [rsp + 0xe8]
mov rcx, rdi
call fcn.00597514
mov rcx, rax
call fcn.00458a41
jmp 0x4124d0
mov rdi, qword [rsp + 0x798]
mov rcx, r15
mov qword [rsp + 0x250], rdi
mov rdx, rdi
call fcn.004025d9
lea rbx, [rsp + 0x510]
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
call fcn.00433bdd
mov rax, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
lea r15, [rsp + 0x170]
mov rcx, rax
call fcn.004025fc
mov rcx, rbp
mov rdx, r13
call fcn.00433bdd
jmp 0x411ecd
mov rcx, r15
call fcn.00401e0a
mov rcx, rbx
call fcn.00401fb7
mov r14, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
call fcn.00433bdd
mov rax, r14
jmp 0x411dba
lea rcx, [rsp + 0x90]
call fcn.00455525
lea rbx, [rsp + 0x510]
lea rdx, [rsp + 0x2a0]
mov rcx, rbx
call fcn.0059877b
mov rcx, qword [rbx]
cmp rcx, 4
jne 0x4126cc
mov rcx, qword [rsp + 0x518]
call fcn.0059c8b0
cmp qword [0x007e0030], 0
je 0x41283c
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0xa0], rax
lea rax, [0x006b5aee]
mov qword [rsp + 0x510], rax
mov rcx, qword [rsp + 0x510]
movabs rax, 0xd6650a7cf10c3b55
mov qword [rsp + 0x510], rax
mov rdx, qword [rsp + 0x510]
call fcn.00406284
and dword [rsp + 0x518], 0
and qword [rsp + 0x510], 0
mov r8b, 1
xor edx, edx
lea rcx, [0x006bc33b]
test r8b, 1
je 0x412709
movzx r9d, byte [rdx + rcx]
mov r8, rdx
or r8, 1
movzx r8d, byte [r8 + rcx]
mov r10, rdx
or r10, 2
movzx r10d, byte [r10 + rcx]
mov r11, rdx
or r11, 3
movzx r11d, byte [r11 + rcx]
mov rsi, rdx
or rsi, 4
movzx esi, byte [rsi + rcx]
mov rdi, rdx
or rdi, 5
movzx edi, byte [rdi + rcx]
mov r14, rdx
or r14, 6
mov r15, rdx
or r15, 7
movzx r14d, byte [r14 + rcx]
movzx r15d, byte [r15 + rcx]
shl r15, 0x38
shl r14, 0x30
or r14, r15
shl rdi, 0x28
shl rsi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rsi
or r8, rdi
or r8, r14
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x510], r8
mov edx, 8
xor r8d, r8d
jmp 0x412621
mov rdx, qword [rsp + 0x518]
call fcn.0040214f
lea rcx, [rsp + 0x50]
call fcn.004022bf
lea rcx, [rsp + 0x2a0]
call fcn.00402578
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x40]
call fcn.00433bdd
xor esi, esi
jmp 0x412872
mov edx, 8
lea r10, [0x006bfea8]
lea r11, [rsp + 0x790]
cmp rdx, 0xb
ja 0x41274e
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0xf6000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x510], r8d
add rdx, 4
jmp 0x41271d
mov al, byte [rax + 0xc]
xor al, 0x48
lea rdx, [rsp + 0x510]
mov byte [rdx + 0xc], al
mov rax, qword [rdx]
lea rcx, [rsp + 0x140]
mov qword [rcx], rax
mov rax, qword [rdx + 5]
mov qword [rcx + 5], rax
mov qword [rsp + 0xd8], rcx
mov qword [rsp + 0xe0], 0xd
lea rax, [rsp + 0x288]
mov qword [rsp + 0x790], rax
lea rax, [0x00402ee3]
mov qword [rsp + 0x798], rax
mov qword [rdx], r10
mov eax, 2
mov qword [rdx + 8], rax
and qword [rdx + 0x20], 0
lea rcx, [rsp + 0xd8]
mov qword [rsp + 0x7a0], rcx
lea rcx, [fcn.0047688f]
mov qword [rsp + 0x7a8], rcx
mov qword [rdx + 0x10], r11
mov qword [rdx + 0x18], rax
lea rsi, [rsp + 0x170]
mov rcx, rsi
call fcn.004027ba
lea rdi, [rsp + 0x510]
lea rdx, [rsp + 0x90]
mov rcx, rdi
mov r8, rsi
call fcn.004556cf
mov rcx, qword [rdi]
mov rdx, qword [rdi + 8]
call fcn.004026a4
xor ecx, ecx
call fcn.00550fc6
mov rsi, rax
mov rdi, rdx
lea rcx, [rsp + 0x50]
call fcn.004022bf
lea rcx, [rsp + 0x2a0]
call fcn.00402578
jmp 0x412872
xor ecx, ecx
call fcn.00550fc6
mov rsi, rax
mov rdi, rdx
lea rcx, [rsp + 0x50]
call fcn.004022bf
lea rcx, [rsp + 0x2a0]
call fcn.00402578
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x40]
call fcn.00433bdd
mov rcx, qword [rsp + 0x288]
mov rdx, qword [rsp + 0x290]
call fcn.00433bdd
mov rcx, rsi
mov rdx, rdi
call fcn.0055f979
mov rax, qword [rsp + 0x258]
mov rdx, qword [rax]
mov r14, qword [rax + 0x10]
lea rcx, [rsp + 0xd8]
mov qword [rsp + 0x48], rdx
mov r8, r14
call fcn.00434176
lea rdx, [0x006c00c5]
lea rsi, [rsp + 0x2a0]
mov r8d, 7
mov rcx, rsi
call fcn.00577142
cmp byte [rsi + 0x18], 3
jne 0x41412d
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0x7a0], rax
movdqu xmm0, xmmword [rsp + 0x2a0]
movdqa xmmword [rsp + 0x790], xmm0
lea rax, [0x006ba3d0]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0xb56a7d50ca19e3e4
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.00406b34
and dword [rsp + 0x2b0], 0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x2a0], xmm0
xor edx, edx
lea rcx, [0x006be955]
lea r12, [rsp + 0x790]
cmp rdx, 0x10
jae 0x412977
mov r8, qword [rdx + rcx]
xor r8, qword [rax + rdx]
mov qword [rsp + rdx + 0x2a0], r8
add rdx, 8
jmp 0x41295b
mov edx, 0x10
cmp rdx, 0x13
ja 0x4129ad
movzx r8d, byte [rdx + rcx + 2]
shl r8d, 0x10
movzx r9d, word [rdx + rcx]
add r8d, r9d
add r8d, 0x80000000
xor r8d, dword [rax + rdx]
mov dword [rsp + rdx + 0x2a0], r8d
add rdx, 4
jmp 0x41297c
mov al, byte [rax + 0x14]
xor al, 0x5b
lea rdx, [rsp + 0x2a0]
mov byte [rdx + 0x14], al
movdqa xmm0, xmmword [rdx]
movdqa xmmword [rsp + 0x90], xmm0
mov rax, qword [rdx + 0xd]
mov qword [rsp + 0x9d], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0x15
mov qword [rsp + 0x510], r12
lea rax, [0x00402ee3]
mov qword [rsp + 0x518], rax
lea rax, [0x006c0110]
mov qword [rdx], rax
mov qword [rdx + 8], 3
and qword [rdx + 0x20], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x520], rax
lea rax, [fcn.0047688f]
mov qword [rsp + 0x528], rax
mov qword [rdx + 0x10], rbx
mov qword [rdx + 0x18], 2
lea rsi, [rsp + 0x170]
mov rcx, rsi
call fcn.004027ba
mov rcx, qword [rsp + 0x790]
mov rdx, qword [rsp + 0x798]
call fcn.00433bdd
mov r15, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rsp + 0x108], rax
mov rsi, qword [rsi + 0x10]
mov rcx, r15
mov rdx, rsi
call fcn.0044e623
test al, al
mov qword [rsp + 0x40], r14
je 0x412e19
lea r13, [rsp + 0x510]
lea rax, [0x006be978]
lea rbp, [rsp + 0x2a0]
mov qword [rbp], rax
mov qword [rbp + 8], 2
and qword [rbp + 0x20], 0
lea rax, [rsp + 0xd8]
mov qword [r13], rax
lea rax, [0x00402ee3]
mov qword [r13 + 8], rax
mov qword [rbp + 0x10], rbx
mov qword [rbp + 0x18], 1
lea rdi, [rsp + 0x90]
mov rcx, rdi
mov rdx, rbp
call fcn.004027ba
mov rcx, rdi
call fcn.0045559d
mov rcx, rax
call fcn.0044e65a
lea r14, [rsp + 0x2a0]
mov rcx, r14
mov qword [rsp + 0x1f0], r15
mov rdx, r15
mov r8, rsi
call fcn.0040753a
mov rax, qword [r14 + 0x38]
cmp rax, 1
adc rax, 0
mov qword [r14 + 0x40], rax
mov ecx, 0xa
mov rdi, r13
mov rsi, r14
rep movsq qword [rdi], qword [rsi]
movups xmm0, xmmword [r13 + 0x40]
movups xmmword [r14 + 0x30], xmm0
movdqu xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movups xmm3, xmmword [r13 + 0x30]
movups xmmword [r14 + 0x20], xmm3
movups xmmword [r14 + 0x10], xmm2
xorps xmm2, xmm2
movups xmmword [r14 + 0x68], xmm2
movups xmmword [r14 + 0x80], xmm2
movups xmmword [r14 + 0x98], xmm2
movdqu xmmword [r14 + 0x40], xmm0
movups xmmword [r14 + 0x50], xmm1
mov eax, 8
mov qword [r14 + 0x60], rax
mov qword [r14 + 0x78], rax
movups xmmword [r14 + 0xa8], xmm2
mov qword [r14 + 0x90], rax
and qword [r14], 0
lea r14, [r12 + rax]
add r13, rax
mov rcx, r12
mov qword [rsp + 0x38], r14
mov rdx, rbp
call fcn.0058cada
mov rax, qword [rsp + 0x790]
cmp rax, 3
je 0x412dff
mov qword [rsp + 0x510], rax
mov ecx, 0xf
mov rdi, r13
mov rsi, r14
rep movsq qword [rdi], qword [rsi]
cmp rax, 2
jne 0x412c1f
cmp byte [rsp + 0x558], 2
jne 0x412dc8
lea rcx, [rsp + 0x528]
call fcn.0055d67f
mov rcx, qword [rsp + 0x520]
call fcn.0044eabb
lea rcx, [rsp + 0x790]
jmp 0x412bb7
mov r14, rbx
mov r15, r13
mov rsi, qword [rsp + 0x7d8]
mov rdi, qword [rsp + 0x7e0]
mov rbp, qword [rsp + 0x7e8]
mov rcx, rsi
mov rdx, rbp
call fcn.0058f826
mov r8, rdx
mov rcx, rbx
mov rdx, rax
call fcn.00574ac8
mov r14, qword [rsp + 0x510]
mov r12, qword [rsp + 0x518]
test r14, r14
mov rcx, r14
cmove rcx, r12
mov rdx, qword [rsp + 0x520]
mov r9d, 3
lea r8, str..dbM
call fcn.0047b256
mov r13d, eax
mov rcx, r14
mov rdx, r12
call fcn.0055f979
test r13b, r13b
je 0x412da0
mov rcx, rsi
mov rdx, rbp
call fcn.0058f826
mov rcx, rax
call fcn.00401bdf
test rax, rax
je 0x41412d
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x790], rax
lea rax, [0x00402ee3]
mov qword [rsp + 0x798], rax
lea rax, [0x006be978]
mov qword [rsp + 0x510], rax
mov ecx, 2
mov qword [rsp + 0x518], rcx
and qword [rsp + 0x530], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x7a0], rax
lea rax, [fcn.0047688f]
mov qword [rsp + 0x7a8], rax
lea rax, [rsp + 0x790]
mov qword [rsp + 0x520], rax
mov qword [rsp + 0x528], rcx
lea rcx, [rsp + 0x170]
mov r13, rbx
mov rdx, rbx
call fcn.004027ba
mov r14, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, rsi
mov r8, rbp
mov r9, r14
call fcn.0045569b
mov rcx, qword [rsp + 0x510]
mov rdx, qword [rsp + 0x518]
call fcn.0044e706
mov rcx, r14
mov rdx, r12
call fcn.00433bdd
mov rcx, rsi
mov rdx, rdi
call fcn.00433bdd
lea rcx, [rsp + 0x790]
mov r13, r15
lea rbp, [rsp + 0x2a0]
mov r14, qword [rsp + 0x38]
jmp 0x412bb7
mov rcx, qword [rsp + 0x520]
mov rdx, qword [rsp + 0x528]
call fcn.00433bdd
mov rcx, qword [rsp + 0x540]
mov rdx, qword [rsp + 0x548]
call fcn.00433bdd
lea rcx, [rsp + 0x790]
jmp 0x412bb7
lea rcx, [rsp + 0x2a0]
call fcn.0044e664
mov r14, qword [rsp + 0x40]
mov r15, qword [rsp + 0x1f0]
mov rcx, r15
mov rdx, qword [rsp + 0x108]
call fcn.00433bdd
mov rcx, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
call fcn.00433bdd
lea rcx, [rsp + 0x288]
mov rdx, qword [rsp + 0x48]
mov r8, r14
call fcn.00434176
mov qword [rsp + 0x158], 8
xorps xmm6, xmm6
movups xmmword [rsp + 0x160], xmm6
lea rdx, [0x006c00c5]
lea rsi, [rsp + 0x2a0]
mov r8d, 7
mov rcx, rsi
call fcn.00577142
cmp byte [rsi + 0x18], 3
jne 0x41412d
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0xa0], rax
movdqu xmm0, xmmword [rsp + 0x2a0]
movdqa xmmword [rsp + 0x90], xmm0
lea rax, [0x006afa89]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0x8cb896a8deebd632
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.00405035
and qword [rsp + 0x2b0], 0
movaps xmmword [rsp + 0x2a0], xmm6
xor ecx, ecx
lea rdx, [0x006be99b]
lea r12, [rsp + 0x170]
cmp rcx, 0x17
ja 0x412f27
mov r8, qword [rcx + rdx]
xor r8, qword [rax + rcx]
mov qword [rsp + rcx + 0x2a0], r8
add rcx, 8
jmp 0x412f0b
movzx ecx, byte [rax + 0x1a]
movzx eax, word [rax + 0x18]
xor eax, 0x62d4
lea rsi, [rsp + 0x2a0]
mov word [rsi + 0x18], ax
xor cl, 0xb1
mov byte [rsi + 0x1a], cl
movaps xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x790], xmm0
mov rax, qword [rsi + 0xb]
mov qword [rsp + 0x79b], rax
mov eax, dword [rsi + 0x13]
mov dword [rsp + 0x7a3], eax
mov al, byte [rsi + 0x17]
mov byte [rsp + 0x7a7], al
movzx eax, word [rsi + 0x18]
mov word [rsp + 0x7a8], ax
mov al, byte [rsi + 0x1a]
mov byte [rsp + 0x7aa], al
mov ecx, 0x1b
call fcn.00550fc6
movaps xmm0, xmmword [rsp + 0x790]
movups xmmword [rax], xmm0
movdqu xmm0, xmmword [rsp + 0x79b]
movdqu xmmword [rax + 0xb], xmm0
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], 0x1b
lea rax, [rsp + 0x90]
mov qword [rsp + 0x510], rax
lea rcx, [0x00402ee3]
mov qword [rsp + 0x518], rcx
lea rax, [0x006bfea8]
mov qword [rsi], rax
mov eax, 2
mov qword [rsi + 8], rax
and qword [rsi + 0x20], 0
mov qword [rsp + 0x520], r12
mov qword [rsp + 0x528], rcx
mov qword [rsi + 0x10], rbx
mov qword [rsi + 0x18], rax
lea rdi, [rsp + 0x200]
mov rcx, rdi
mov rdx, rsi
call fcn.004027ba
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.00433bdd
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
call fcn.00433bdd
lea rcx, [rsp + 0x158]
mov rdx, rdi
call fcn.00402bd2
lea rdx, [0x006c00c5]
lea rsi, [rsp + 0x2a0]
mov r8d, 7
mov rcx, rsi
call fcn.00577142
cmp byte [rsi + 0x18], 3
jne 0x41412d
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0xa0], rax
movdqu xmm0, xmmword [rsp + 0x2a0]
movdqa xmmword [rsp + 0x90], xmm0
lea rax, [0x006b508e]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0x8f6b4bc6db608f43
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.00404820
and qword [rsp + 0x2b0], 0
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x2a0], xmm0
xor ecx, ecx
lea rdx, [0x006be9b6]
cmp rcx, 0x17
ja 0x41311c
mov r8, qword [rcx + rdx]
xor r8, qword [rax + rcx]
mov qword [rsp + rcx + 0x2a0], r8
add rcx, 8
jmp 0x413100
mov al, byte [rax + 0x18]
xor al, 0xba
lea r14, [rsp + 0x2a0]
mov byte [r14 + 0x18], al
movaps xmm0, xmmword [r14]
movaps xmmword [rsp + 0x790], xmm0
mov rax, qword [r14 + 9]
mov qword [rsp + 0x799], rax
mov eax, dword [r14 + 0x11]
mov dword [rsp + 0x7a1], eax
movzx eax, word [r14 + 0x15]
mov word [rsp + 0x7a5], ax
mov al, byte [r14 + 0x17]
mov byte [rsp + 0x7a7], al
mov al, byte [r14 + 0x18]
mov byte [rsp + 0x7a8], al
mov ecx, 0x19
call fcn.00550fc6
movaps xmm0, xmmword [rsp + 0x790]
movups xmmword [rax], xmm0
movdqu xmm0, xmmword [rsp + 0x799]
movdqu xmmword [rax + 9], xmm0
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], rdx
mov qword [rsp + 0x180], 0x19
lea rax, [rsp + 0x90]
mov qword [rsp + 0x510], rax
lea rcx, [0x00402ee3]
mov qword [rsp + 0x518], rcx
lea rax, [0x006bfea8]
mov qword [r14], rax
mov eax, 2
mov qword [r14 + 8], rax
and qword [r14 + 0x20], 0
mov qword [rsp + 0x520], r12
mov qword [rsp + 0x528], rcx
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], rax
lea rdi, [rsp + 0x260]
mov rcx, rdi
mov rdx, r14
call fcn.004027ba
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.00433bdd
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
call fcn.00433bdd
lea rsi, [rsp + 0x158]
mov rcx, rsi
mov rdx, rdi
call fcn.00402bd2
mov rax, qword [rsi]
imul rdx, qword [rsi + 0x10], 0x18
mov rcx, qword [rsi + 8]
mov rsi, rdx
add rsi, rax
mov qword [rsp + 0x790], rax
mov qword [rsp + 0x798], rcx
mov qword [rsp + 0x7a8], rsi
mov qword [rsp + 0x38], rsi
cmp rax, rsi
je 0x413551
lea r15, [rax + 0x18]
mov r13, qword [rax]
test r13, r13
je 0x41354e
mov rbp, qword [rax + 8]
mov rdi, qword [rax + 0x10]
mov rcx, r13
mov rdx, rdi
call fcn.0044e623
test al, al
je 0x41353b
mov rcx, rbx
mov rdx, r13
mov r8, rdi
call fcn.00434176
lea rax, [0x006be9d8]
mov qword [rsp + 0x2a0], rax
mov qword [rsp + 0x2a8], 2
and qword [rsp + 0x2c0], 0
mov qword [rsp + 0x170], rbx
lea rax, [0x00402ee3]
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x2b0], r12
mov eax, 1
mov qword [rsp + 0x2b8], rax
lea rsi, [rsp + 0x50]
mov rcx, rsi
mov rdx, r14
call fcn.004027ba
mov rcx, qword [rsp + 0x510]
mov rdx, qword [rsp + 0x518]
call fcn.00433bdd
mov rcx, rsi
call fcn.0045559d
mov rcx, rax
call fcn.0044e65a
lea rcx, [rsp + 0xd8]
mov rdx, r13
mov r8, rdi
call fcn.00434176
mov rcx, r12
mov rdx, r13
mov r8, rdi
call fcn.00434176
mov eax, 1
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, r13
mov r8, rdi
lea r9, [0x00773700]
call fcn.00478dab
and qword [rsp + 0x308], 0
mov qword [rsp + 0x310], rdi
mov word [rsp + 0x318], 1
xor ecx, ecx
xor r12d, r12d
test cl, cl
jne 0x41345a
mov rsi, qword [rsp + 0x2e8]
mov rcx, rbx
mov rdx, r14
call fcn.0044eb10
cmp qword [rsp + 0x510], 0
je 0x4133ff
mov rdi, qword [rsp + 0x518]
mov rax, qword [rsp + 0x520]
mov rcx, qword [rsp + 0x308]
add rsi, rcx
sub rdi, rcx
mov qword [rsp + 0x308], rax
mov cl, byte [rsp + 0x319]
mov r12, rsi
jmp 0x4133a7
cmp byte [rsp + 0x319], 0
jne 0x41345a
mov byte [rsp + 0x319], 1
cmp byte [rsp + 0x318], 0
je 0x41342d
mov rax, qword [rsp + 0x308]
mov rdx, qword [rsp + 0x310]
jmp 0x413442
mov rax, qword [rsp + 0x308]
mov rdx, qword [rsp + 0x310]
cmp rdx, rax
je 0x41345a
sub rdx, rax
add rax, qword [rsp + 0x2e8]
mov cl, 1
mov rdi, rdx
mov r12, rax
jmp 0x4133a7
test r12, r12
je 0x41412d
mov qword [rsp + 0x140], r12
mov qword [rsp + 0x148], rdi
lea r12, [rsp + 0x170]
mov qword [rsp + 0x510], r12
lea rax, [0x00402ee3]
mov qword [rsp + 0x518], rax
lea rax, [0x006bea00]
mov qword [rsp + 0x2a0], rax
mov ecx, 2
mov qword [rsp + 0x2a8], rcx
and qword [rsp + 0x2c0], 0
lea rax, [rsp + 0x140]
mov qword [rsp + 0x520], rax
lea rax, [fcn.0047688f]
mov qword [rsp + 0x528], rax
mov qword [rsp + 0x2b0], rbx
mov qword [rsp + 0x2b8], rcx
lea rsi, [rsp + 0x90]
mov rcx, rsi
mov rdx, r14
call fcn.004027ba
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.00433bdd
mov rcx, r14
lea rdx, [rsp + 0xd8]
mov r8, rsi
call fcn.004556cf
mov rcx, qword [rsp + 0x2a0]
mov rdx, qword [rsp + 0x2a8]
call fcn.0044e706
mov rsi, qword [rsp + 0x38]
mov rcx, r13
mov rdx, rbp
call fcn.00433bdd
mov rax, r15
jmp 0x413280
mov rsi, r15
lea rbx, [rsp + 0x790]
mov qword [rbx + 0x10], rsi
mov rcx, rbx
call fcn.00455525
mov rcx, qword [rsp + 0x288]
mov rdx, qword [rsp + 0x290]
call fcn.00433bdd
mov ecx, 1
xor edx, edx
call fcn.0055f979
lea rcx, [rsp + 0xa18]
mov rdx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
call fcn.00434176
call fcn.0055e1dd
movups xmm0, xmmword [0x00775880]
movaps xmmword [rsp + 0x50], xmm0
movdqu xmm0, xmmword [0x00775890]
movdqa xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov ecx, 9
call fcn.00550fc6
movabs rcx, 0x50566e6f746f7250
mov qword [rax], rcx
mov byte [rax + 8], 0x4e
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], 9
lea rdx, [0x006c00b9]
lea rdi, [rsp + 0x2a0]
mov r8d, 0xc
mov rcx, rdi
call fcn.00577142
cmp byte [rdi + 0x18], 3
jne 0x41412d
lea r14, [rsp + 0x70]
mov rax, qword [rsp + 0x2b0]
mov qword [rsp + 0x180], rax
movdqu xmm0, xmmword [rsp + 0x2a0]
movdqa xmmword [rsp + 0x170], xmm0
lea rax, [0x006ad264]
mov qword [rsp + 0x2a0], rax
mov rcx, qword [rsp + 0x2a0]
movabs rax, 0x7b479f12610d3d86
mov qword [rsp + 0x2a0], rax
mov rdx, qword [rsp + 0x2a0]
call fcn.00405aef
and qword [rsp + 0x2a0], 0
mov r8b, 1
xor ecx, ecx
lea rdx, [0x006bc351]
test r8b, 1
je 0x413749
movzx r9d, byte [rcx + rdx]
mov r8, rcx
or r8, 1
movzx r8d, byte [r8 + rdx]
mov r10, rcx
or r10, 2
movzx r10d, byte [r10 + rdx]
mov r11, rcx
or r11, 3
movzx r11d, byte [r11 + rdx]
mov rsi, rcx
or rsi, 4
movzx esi, byte [rsi + rdx]
mov rdi, rcx
or rdi, 5
movzx edi, byte [rdi + rdx]
mov r15, rcx
or r15, 6
mov r12, rcx
or r12, 7
movzx r15d, byte [r15 + rdx]
movzx r12d, byte [r12 + rdx]
shl r12, 0x38
shl r15, 0x30
or r15, r12
lea r12, [rsp + 0x170]
shl rdi, 0x28
shl rsi, 0x20
shl r11, 0x18
shl r10, 0x10
shl r8, 8
or r8, r9
or r8, r10
or r8, r11
or r8, rsi
or r8, rdi
or r8, r15
xor r8, qword [rax + rcx]
mov qword [rsp + rcx + 0x2a0], r8
mov ecx, 8
xor r8d, r8d
jmp 0x413696
movzx eax, word [rax + 8]
xor eax, 0xa824
lea rdx, [rsp + 0x2a0]
mov rcx, qword [rdx]
mov qword [rsp + 0x260], rcx
mov word [rsp + 0x268], ax
lea rax, [rsp + 0x260]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], 0xa
mov qword [rsp + 0x790], r12
lea rax, [0x00402ee3]
mov qword [rsp + 0x798], rax
lea rax, [0x006bfea8]
mov qword [rdx], rax
mov eax, 2
mov qword [rdx + 8], rax
and qword [rdx + 0x20], 0
lea rcx, [rsp + 0xd8]
mov qword [rsp + 0x7a0], rcx
lea rcx, [fcn.0047688f]
mov qword [rsp + 0x7a8], rcx
mov qword [rdx + 0x10], rbx
mov qword [rdx + 0x18], rax
lea rdi, [rsp + 0x510]
mov rcx, rdi
call fcn.004027ba
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.00433bdd
mov ecx, 0xb
call fcn.00550fc6
movabs rcx, 0x6e6f632e72657375
mov qword [rax], rcx
mov dword [rax + 7], 0x6769666e
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rdx
mov qword [rdi + 0x28], 0xb
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0xa0]
call fcn.00552b8c
mov rdi, rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x790], rax
cmp qword [rsp + 0x60], 0
je 0x41411b
lea r9, [rsp + 0x2a0]
mov qword [r9], rbx
lea rax, [rsp + 0x50]
mov qword [r9 + 8], rax
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
lea rax, [0x004096d0]
mov qword [rsp + 0x20], rax
mov r8, rdi
call fcn.00407dd7
test rax, rax
je 0x41393b
mov rax, qword [rsp + 0xa0]
lea rsi, [rsp + 0x2a0]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsi], xmm0
movups xmm0, xmmword [rsp + 0x510]
movups xmm1, xmmword [rsp + 0x520]
movups xmm2, xmmword [rsp + 0x530]
movups xmmword [rsi + 0x18], xmm0
movups xmmword [rsi + 0x28], xmm1
movups xmmword [rsi + 0x38], xmm2
mov rax, qword [rsp + 0x50]
movzx ecx, byte [rax + rdx]
and ecx, 1
sub qword [rsp + 0x60], rcx
shr rdi, 0x39
lea rcx, [rdx - 0x10]
and rcx, qword [rsp + 0x58]
mov byte [rax + rdx], dil
mov byte [rcx + rax + 0x10], dil
inc qword [rsp + 0x68]
mov rax, qword [rsp + 0x50]
neg rdx
imul rcx, rdx, 0x48
lea rdi, [rax + rcx]
add rdi, 0xffffffffffffffb8
mov ecx, 9
rep movsq qword [rdi], qword [rsi]
jmp 0x4139c2
mov rax, qword [rsp + 0x50]
neg rdx
imul rcx, rdx, 0x48
movups xmm0, xmmword [rax + rcx - 0x30]
movups xmm1, xmmword [rax + rcx - 0x20]
movups xmm2, xmmword [rax + rcx - 0x10]
movaps xmmword [rsp + 0x2c0], xmm2
movaps xmmword [rsp + 0x2b0], xmm1
movaps xmmword [rsp + 0x2a0], xmm0
movups xmm0, xmmword [rsp + 0x510]
movups xmm1, xmmword [rsp + 0x520]
movups xmm2, xmmword [rsp + 0x530]
movups xmmword [rax + rcx - 0x10], xmm2
movups xmmword [rax + rcx - 0x20], xmm1
movups xmmword [rax + rcx - 0x30], xmm0
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
call fcn.00433bdd
cmp qword [rsp + 0x2a0], 0
je 0x4139c2
lea rcx, [rsp + 0x2a0]
call fcn.00458ff3
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov r8, qword [rsp + 0x68]
movdqa xmm0, xmmword [r9]
test r10, r10
je 0x413a07
lea rcx, [r10 + 1]
mov edx, 0x48
mov rax, rcx
mul rdx
add rax, 0xf
and rax, 0xfffffffffffffff0
lea rdx, [r10 + rax]
add rdx, 0x11
mov r10, r9
sub r10, rax
mov eax, 0x10
jmp 0x413a0e
mov ecx, 1
xor eax, eax
lea r11, [r9 + 0x10]
pmovmskb esi, xmm0
not esi
add rcx, r9
lea rdi, [rsp + 0xa8]
mov qword [rdi - 0x18], rax
mov qword [rdi - 0x10], rdx
mov qword [rdi - 8], r10
mov qword [rdi], r9
mov qword [rdi + 8], r11
mov qword [rdi + 0x10], rcx
mov word [rdi + 0x18], si
mov qword [rdi + 0x20], r8
lea r14, [rsp + 0x270]
lea r12, [rsp + 0x240]
lea r13, [rsp + 0x528]
lea rbx, [rsp + 0x7a0]
lea r15, [rsp + 0x2a0]
mov rcx, rdi
call fcn.004079d5
test rax, rax
je 0x414070
mov rcx, qword [rax - 0x48]
mov rdx, qword [rax - 0x20]
mov qword [rsp + 0x280], rdx
movups xmm0, xmmword [rax - 0x30]
movaps xmmword [rsp + 0x270], xmm0
movups xmm0, xmmword [rax - 0x40]
movaps xmmword [rsp + 0x260], xmm0
movdqu xmm0, xmmword [rax - 0x18]
movdqa xmmword [rsp + 0xa00], xmm0
mov rdx, qword [rax - 8]
mov qword [rsp + 0xa10], rdx
test rcx, rcx
je 0x414070
add rax, 0xffffffffffffffc0
mov rdx, qword [r14 + 0x10]
mov qword [rsp + 0x130], rdx
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0x120], xmm0
mov rdx, qword [rsp + 0xa10]
mov qword [rsp + 0x230], rdx
movaps xmm0, xmmword [rsp + 0xa00]
movaps xmmword [rsp + 0x220], xmm0
mov qword [rsp + 0x238], rcx
movdqu xmm0, xmmword [rax]
movdqu xmmword [r12], xmm0
mov rdx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x130]
mov rcx, r15
call fcn.00434176
mov rsi, qword [rsp + 0x2a0]
mov rdx, qword [rsp + 0x2b0]
mov rcx, rsi
call fcn.00401c10
mov ebp, eax
mov rdx, qword [rsp + 0x2a8]
mov rcx, rsi
call fcn.00433bdd
test bpl, bpl
je 0x413c1d
mov rdx, qword [rsp + 0x120]
mov r8, qword [rsp + 0x130]
lea rdi, [rsp + 0x790]
mov rcx, rdi
call fcn.00434176
mov r12, qword [rsp + 0x790]
mov r8, qword [rsp + 0x7a0]
mov rcx, r15
mov rdx, r12
call fcn.00578796
mov ebp, dword [rsp + 0x2b0]
mov rsi, qword [rsp + 0x2a0]
cmp ebp, 2
jne 0x413bbd
mov ebp, 2
lea r14, [rsp + 0x510]
jmp 0x413be8
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x38], rax
mov r8d, 0x254
lea r14, [rsp + 0x510]
mov rcx, r14
lea rdx, [rsp + 0x2b4]
call sub.ntdll.dll_memcpy
mov rdx, qword [rsp + 0x798]
mov rcx, r12
call fcn.00433bdd
cmp ebp, 2
jne 0x413c61
mov rcx, rsi
call fcn.0040205b
lea rdi, [rsp + 0xa8]
lea r14, [rsp + 0x270]
lea r12, [rsp + 0x240]
mov rcx, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x240]
call fcn.00433bdd
mov rcx, qword [rsp + 0x220]
mov rdx, qword [rsp + 0x228]
call fcn.00433bdd
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
call fcn.00433bdd
jmp 0x413a6a
mov qword [rsp + 0x2a0], rsi
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x2a8], rax
mov dword [rsp + 0x2b0], ebp
mov r8d, 0x254
lea rcx, [rsp + 0x2b4]
mov rdx, r14
call sub.ntdll.dll_memcpy
lea r12, [rsp + 0x170]
lea rbp, [rsp + 0x200]
mov rcx, r14
mov rdx, r15
call fcn.0056c01e
cmp qword [rsp + 0x510], 0
je 0x41400c
mov rsi, qword [rsp + 0x518]
mov rcx, qword [rsp + 0x520]
test rsi, rsi
je 0x413fb7
mov qword [rsp + 0x798], rcx
mov r8d, 0x248
mov rcx, rbx
mov rdx, r13
call sub.ntdll.dll_memcpy
mov qword [rsp + 0x790], rsi
mov rcx, r12
mov rdx, rdi
call fcn.0056c1e3
cmp dword [rsp + 0x170], 2
je 0x41412d
mov ecx, dword [rsp + 0x1b0]
mov edx, dword [rsp + 0x1b4]
call fcn.0056c019
test al, al
je 0x413fff
lea rcx, [rsp + 0xd8]
mov rdx, rdi
call fcn.0056c14d
mov rsi, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe8]
mov rcx, rsi
call fcn.00401bdf
test rax, rax
je 0x41412d
mov qword [rsp + 0x9f0], rax
mov qword [rsp + 0x9f8], rdx
lea rax, [rsp + 0x9f0]
mov qword [rsp + 0x200], rax
lea rax, [fcn.0047688f]
mov qword [rsp + 0x208], rax
lea rdi, [0x006bfea8]
mov qword [rsp + 0x170], rdi
mov ebx, 2
mov qword [rsp + 0x178], rbx
and qword [rsp + 0x190], 0
lea r15, [rsp + 0x220]
mov qword [rsp + 0x210], r15
lea r13, [0x00402ee3]
mov qword [rsp + 0x218], r13
mov qword [rsp + 0x180], rbp
mov qword [rsp + 0x188], rbx
lea rcx, [rsp + 0x140]
mov rdx, r12
call fcn.004027ba
mov rdx, qword [rsp + 0xe0]
mov rcx, rsi
call fcn.00433bdd
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x148]
mov r14, r12
mov r12, qword [rsp + 0x150]
mov rcx, rsi
mov rdx, r12
call fcn.00401c10
test al, al
je 0x413fc1
lea rax, [rsp + 0x120]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], r13
mov qword [rsp + 0x170], rdi
mov qword [rsp + 0x178], rbx
and qword [rsp + 0x190], 0
lea rax, [rsp + 0x238]
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], r13
lea rdi, [rsp + 0xd8]
mov qword [rsp + 0x180], rdi
mov qword [rsp + 0x188], rbx
lea rbx, [rsp + 0x288]
mov rcx, rbx
mov rdx, r14
call fcn.004027ba
mov rcx, rbx
call fcn.0045559d
mov rcx, rax
call fcn.00458a41
mov qword [rsp + 0x200], rsi
mov qword [rsp + 0x208], rbp
mov qword [rsp + 0x210], r12
lea rax, [rsp + 0xa18]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], r13
lea rax, [rsp + 0x238]
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], r13
lea rax, [0x006c0110]
mov qword [rsp + 0xd8], rax
mov eax, 3
mov qword [rsp + 0xe0], rax
and qword [rsp + 0xf8], 0
mov qword [rsp + 0x190], r15
mov qword [rsp + 0x198], r13
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0xf0], rax
lea rsi, [rsp + 0x158]
mov rcx, rsi
mov rdx, rdi
call fcn.004027ba
mov rcx, r14
lea rbx, [rsp + 0x200]
mov rdx, rbx
mov r8, rsi
call fcn.004556cf
mov rcx, qword [rsp + 0x170]
mov rdx, qword [rsp + 0x178]
call fcn.004025cb
lea rdi, [rsp + 0x790]
mov rcx, rdi
call fcn.0058dbca
mov r12, r14
mov rbp, rbx
lea r13, [rsp + 0x528]
lea rbx, [rsp + 0x7a0]
lea r15, [rsp + 0x2a0]
lea r14, [rsp + 0x510]
jmp 0x413ca3
call fcn.0040205b
jmp 0x413ca3
mov rcx, rsi
mov rdx, rbp
call fcn.00433bdd
mov r12, r14
lea rbp, [rsp + 0x200]
lea r13, [rsp + 0x528]
lea rbx, [rsp + 0x7a0]
lea rdi, [rsp + 0x790]
lea r15, [rsp + 0x2a0]
lea r14, [rsp + 0x510]
mov rcx, rdi
call fcn.0058dbca
jmp 0x413ca3
mov rcx, r15
call fcn.00401f99
mov rcx, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x240]
call fcn.00433bdd
mov rcx, qword [rsp + 0x220]
mov rdx, qword [rsp + 0x228]
call fcn.00433bdd
mov rcx, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
call fcn.00433bdd
lea rdi, [rsp + 0xa8]
lea r14, [rsp + 0x270]
lea r12, [rsp + 0x240]
jmp 0x413a6a
cmp qword [rsp + 0xc8], 0
jne 0x414099
jmp 0x4140a6
mov rsi, rax
mov rcx, qword [rax - 0x48]
mov rdx, qword [rax - 0x40]
call fcn.00433bdd
add rsi, 0xffffffffffffffd0
mov rcx, rsi
call fcn.00458ff3
mov rcx, rdi
call fcn.004079d5
test rax, rax
jne 0x41407d
mov rdx, qword [rsp + 0x90]
test rdx, rdx
je 0x4140c8
mov r8, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
call fcn.00402efa
mov rcx, qword [rsp + 0xa18]
mov rdx, qword [rsp + 0xa20]
call fcn.00433bdd
mov ecx, 1
xor edx, edx
call fcn.0055f979
mov rax, qword [rsp + 0x258]
mov rdx, qword [rax + 8]
mov rcx, qword [rsp + 0x48]
call fcn.00433bdd
movaps xmm6, xmmword [rsp + 0xa30]
add rsp, 0xa48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x50]
mov rdx, r14
call fcn.00408a57
jmp 0x413870
ud2