Function at 0x403d60
Capabilities:
Encrypt data using speck

Disassembly:
push rbp
mov rbp, rsp
mov r10, qword [rdi + 8]
mov r10, qword [r10]
add r10, 0x1c0
cmp r10, rsp
ja 0x408bf0
sub rsp, 0x1f0
mov qword [rsp + 0x1c0], rbx
mov qword [rsp + 0x1c8], r12
mov qword [rsp + 0x1d0], r13
mov qword [rsp + 0x1d8], r14
mov qword [rsp + 0x1e0], r15
mov qword [rsp + 0x18], r9
mov qword [rsp + 0xb0], rcx
mov r12, qword [rbp + 0x10]
mov qword [rsp + 0x20], r12
mov r14d, dword [rdi + 0x110]
mov r9, r14
sub r9d, 0x370
mov qword [rsp + 0x1b8], r14
mov dword [rdi + 0x110], r9d
xor r14d, r14d
mov qword [rsp + 0x28], r14
mov r14, qword [rdi + 0x100]
mov qword [rsp], rdi
mov r13d, edx
mov qword [rsp + 8], rdx
mov qword [rsp + 0x1b0], r13
mov r15d, r8d
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x1a8], r15
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x28]
mov qword [rsp + 0xc8], rsi
mov r9, rdi
xor r9d, 0x7fffffff
mov r10, qword [rsp + 0x28]
cmp r10d, r9d
jg 0x408b8d
mov rdx, qword [rsp + 0xb0]
mov esi, edx
movzx r11, byte [r14 + rsi]
test r11d, r11d
je 0x408914
mov r15, rdx
and r11d, 0xff
test r11d, r11d
je 0x403ec6
cmp r11d, 0x25
jne 0x403eb4
mov rcx, r15
mov r11d, r15d
movzx rsi, byte [r14 + r11 + 1]
cmp esi, 0x25
je 0x403e92
mov rbx, r15
mov r15, rcx
jmp 0x403ec9
movzx r8, byte [r14 + r11 + 2]
add r15d, 2
add ecx, 1
cmp r8d, 0x25
je 0x403e75
mov rbx, r15
mov r15, rcx
jmp 0x403ec9
mov r8d, r15d
movzx r11, byte [r14 + r8 + 1]
add r15d, 1
jmp 0x403e58
mov rbx, r15
sub r15d, edx
mov qword [rsp + 0xb0], rdx
add edi, r10d
mov r9, rdi
xor r9d, 0x7fffffff
mov qword [rsp + 0x30], rdi
cmp r15d, r9d
mov qword [rsp + 0x1a0], r9
jg 0x408b8d
mov rcx, qword [rsp + 8]
test ecx, ecx
je 0x403f39
mov r9, qword [rsp + 0x1b0]
movzx rax, byte [r14 + r9]
and eax, 0x20
test eax, eax
jne 0x403f39
mov rcx, r15
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
test r15d, r15d
je 0x403f5c
mov r10, r15
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
mov qword [rsp + 0xb0], rbx
jmp 0x403e25
mov r11d, ebx
movsx r8, byte [r14 + r11 + 1]
mov r9d, 0xffffffd0
add r9d, r8d
lea r10d, [rbx + 1]
mov qword [rsp + 0x40], r10
mov r10d, 0xffffffff
cmp r9d, 9
ja 0x403fbb
movzx rsi, byte [r14 + r11 + 2]
mov r10d, 0xffffffff
cmp esi, 0x24
jne 0x403fbb
movsx r8, byte [r14 + r11 + 3]
add ebx, 3
mov qword [rsp + 0x40], rbx
mov r13d, 1
mov qword [rsp + 0xc8], r13
mov r10, r9
mov r9d, 0xffffffe0
add r9d, r8d
xor r12d, r12d
mov qword [rsp + 0xa8], r12
cmp r9d, 0x1f
ja 0x40408f
mov r11d, 1
shlx r11d, r11d, r9d
mov r9, r11
and r9d, 0x12889
xor r12d, r12d
mov qword [rsp + 0xa8], r12
test r9d, r9d
je 0x40408f
xor r9d, r9d
mov rbx, qword [rsp + 0x40]
add ebx, 1
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0xa8], r11
mov r11d, ebx
movsx r8, byte [r14 + r11]
mov r11d, 0xffffffe0
add r11d, r8d
mov rcx, qword [rsp + 0xa8]
or ecx, r9d
mov qword [rsp + 0xa8], rcx
cmp r11d, 0x20
jae 0x40408f
mov r9d, 1
shlx r9d, r9d, r11d
mov rsi, r9
and esi, 0x12889
mov rbx, qword [rsp + 0x40]
lea r11d, [rbx + 1]
test esi, esi
je 0x40408f
mov qword [rsp + 0x40], r11
mov rsi, r9
mov r9, qword [rsp + 0xa8]
mov qword [rsp + 0xa8], rsi
mov rbx, qword [rsp + 0x40]
jmp 0x40401a
cmp r8d, 0x2a
jne 0x404208
mov rbx, qword [rsp + 0x40]
mov edi, ebx
movsx rax, byte [r14 + rdi + 1]
mov ecx, 0xffffffd0
add eax, ecx
cmp eax, 9
jbe 0x4040c3
mov r13, qword [rsp + 0xc8]
jmp 0x40413c
movzx rdx, byte [r14 + rdi + 2]
cmp edx, 0x24
je 0x4040df
mov r13, qword [rsp + 0xc8]
jmp 0x40413c
mov r12, qword [rsp + 0x20]
lea r11d, [r12 + rax*4]
mov dword [r14 + r11], 0xa
movsx r11, byte [r14 + rdi + 1]
mov r13, qword [rsp + 0x18]
lea r11d, [r13 + r11*8]
mov esi, 0xfffffe80
add r11d, esi
mov r13d, dword [r14 + r11]
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0xd8], r13
add ebx, 3
mov qword [rsp + 0x40], rbx
mov r13d, 1
mov qword [rsp + 0xc8], r13
mov r13, qword [rsp + 0xd8]
jmp 0x4041c2
test r13d, r13d
jne 0x408b4d
mov rcx, qword [rsp + 8]
test ecx, ecx
jne 0x40417f
mov rbx, qword [rsp + 0x40]
add ebx, 1
mov qword [rsp + 0x40], rbx
xor r13d, r13d
mov qword [rsp + 0xc8], r13
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xd8], rsi
jmp 0x4042a0
mov r13, qword [rsp + 0x1a8]
mov r9d, dword [r14 + r13]
lea r11d, [r9 + 4]
mov dword [r14 + r13], r11d
mov r11d, r9d
mov r13d, dword [r14 + r11]
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0xd8], r13
add ebx, 1
mov qword [rsp + 0x40], rbx
xor r13d, r13d
mov qword [rsp + 0xc8], r13
mov r13, qword [rsp + 0xd8]
test r13d, r13d
jl 0x4041d5
mov rbx, qword [rsp + 0x40]
jmp 0x4042a0
mov rcx, qword [rsp + 0xa8]
or ecx, 0x2000
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0xa8], rcx
neg r13d
mov qword [rsp + 0xd8], r13
mov rbx, qword [rsp + 0x40]
jmp 0x4042a0
mov r11d, 0xffffffd0
lea esi, [r8 + r11]
cmp esi, 9
jbe 0x404230
xor r13d, r13d
mov qword [rsp + 0xd8], r13
mov rbx, qword [rsp + 0x40]
jmp 0x4042a0
xor edx, edx
cmp edx, 0xccccccc
ja 0x4088d3
mov rbx, qword [rsp + 0x40]
mov r8d, ebx
movsx r8, byte [r14 + r8 + 1]
mov r9d, 0xffffffd0
add r8d, r9d
imul r9d, edx, 0xa
mov r11, r9
xor r11d, 0x7fffffff
lea edx, [r9 + rsi]
cmp esi, r11d
cmova edx, dword [0x00408c00]
add ebx, 1
mov qword [rsp + 0x40], rbx
cmp r8d, 0xa
jae 0x40428b
mov rsi, r8
jmp 0x404232
test edx, edx
jl 0x408b8d
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0xd8], rdx
mov edi, ebx
movzx rax, byte [r14 + rdi]
cmp eax, 0x2e
je 0x4042c3
mov r8d, 0xffffffff
xor r13d, r13d
mov qword [rsp + 0x38], r8
jmp 0x404481
movsx rdx, byte [r14 + rdi + 1]
cmp edx, 0x2a
jne 0x4043bf
movsx r9, byte [r14 + rdi + 2]
mov r11d, 0xffffffd0
add r9d, r11d
cmp r9d, 9
jbe 0x4042f8
mov r13, qword [rsp + 0xc8]
jmp 0x404352
movzx rsi, byte [r14 + rdi + 3]
cmp esi, 0x24
je 0x404314
mov r13, qword [rsp + 0xc8]
jmp 0x404352
mov r8, qword [rsp + 0x20]
lea ecx, [r8 + r9*4]
mov dword [r14 + rcx], 0xa
movsx rdx, byte [r14 + rdi + 2]
mov rcx, qword [rsp + 0x18]
lea edx, [rcx + rdx*8]
mov r8d, 0xfffffe80
add edx, r8d
mov r8d, dword [r14 + rdx]
mov rbx, qword [rsp + 0x40]
add ebx, 4
mov qword [rsp + 0x40], rbx
jmp 0x4043ab
mov r13, qword [rsp + 0xc8]
test r13d, r13d
jne 0x408b4d
mov rcx, qword [rsp + 8]
test ecx, ecx
jne 0x404385
xor r8d, r8d
mov rbx, qword [rsp + 0x40]
add ebx, 2
mov qword [rsp + 0x40], rbx
jmp 0x4043ab
mov r13, qword [rsp + 0x1a8]
mov eax, dword [r14 + r13]
lea ecx, [rax + 4]
mov dword [r14 + r13], ecx
mov ecx, eax
mov r8d, dword [r14 + rcx]
mov rbx, qword [rsp + 0x40]
add ebx, 2
mov qword [rsp + 0x40], rbx
mov r13, r8
not r13d
shr r13d, 0x1f
mov qword [rsp + 0x38], r8
jmp 0x404481
mov r8d, 0xffffffd0
add edx, r8d
cmp edx, 9
jbe 0x4043f1
mov r13d, 1
mov rbx, qword [rsp + 0x40]
add ebx, 1
mov qword [rsp + 0x40], rbx
xor r8d, r8d
mov qword [rsp + 0x38], r8
jmp 0x404481
xor r8d, r8d
mov rbx, qword [rsp + 0x40]
add ebx, 1
mov qword [rsp + 0x40], rbx
mov esi, 0xffffffff
cmp r8d, 0xccccccc
jbe 0x404425
mov r8, rsi
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x38], r8
jmp 0x40444a
imul eax, r8d, 0xa
mov rcx, rax
xor ecx, 0x7fffffff
lea r8d, [rax + rdx]
cmp edx, ecx
cmova r8d, dword [0x00408c00]
mov qword [rsp + 0x38], r8
mov rbx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x40]
mov edx, ebx
movsx rdx, byte [r14 + rdx + 1]
mov r8d, 0xffffffd0
add edx, r8d
add ebx, 1
mov qword [rsp + 0x40], rbx
cmp edx, 0xa
jae 0x40447b
mov r8, qword [rsp + 0x38]
jmp 0x404401
mov r13d, 1
xor ebx, ebx
mov rdx, qword [rsp + 0x40]
mov r12d, edx
movsx rax, byte [r14 + r12]
mov ecx, 0xffffff85
add ecx, eax
cmp ecx, dword [0x00408c08]
jb 0x408b4d
imul r8d, ebx, 0x3a
lea r8d, [rax + r8 + 0xb2f]
movzx rcx, byte [r14 + r8]
mov r8d, 0xffffffff
add r8d, ecx
mov r11, qword [rsp + 0x40]
add r11d, 1
mov qword [rsp + 0x40], r11
cmp r8d, 8
jae 0x4044e2
mov rbx, rcx
mov rdx, qword [rsp + 0x40]
jmp 0x404488
cmp ecx, 0x1b
je 0x404583
test ecx, ecx
je 0x408b4d
test r10d, r10d
jl 0x404532
mov r8, qword [rsp + 0x20]
lea r9d, [r8 + r10*4]
mov dword [r14 + r9], ecx
mov rcx, qword [rsp + 0x18]
lea r9d, [rcx + r10*8]
mov r9, qword [r14 + r9]
mov r11, qword [rsp + 0x1b8]
mov r10, r11
sub r10d, 0x370
mov qword [r14 + r10 + 0x38], r9
jmp 0x40458c
mov r10, qword [rsp + 8]
mov r11, qword [rsp + 0x1b8]
test r10d, r10d
jne 0x40455b
xor eax, eax
mov rbx, qword [rsp]
mov qword [rsp + 0x1b8], r11
jmp 0x408ba9
mov eax, 0xfffffcc8
lea edx, [r11 + rax]
mov qword [rsp + 0x1b8], r11
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
jmp 0x4045b8
test r10d, r10d
jge 0x408b4d
xor r10d, r10d
mov rcx, qword [rsp + 8]
test ecx, ecx
jne 0x4045b8
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
jmp 0x403e25
movsx r11, byte [r14 + r12]
mov rdi, r11
and edi, 0xf
mov rsi, r11
and esi, dword [0x00408c10]
cmp edi, 3
mov rdi, r11
cmove edi, esi
test ebx, ebx
cmovne r11d, edi
mov edi, 0xffffffbf
add edi, r11d
mov rdx, qword [rsp + 0xa8]
mov rcx, rdx
and ecx, 0x2000
mov r9, qword [rsp + 0xa8]
mov rax, r9
and eax, dword [0x00408c18]
test ecx, ecx
mov rcx, qword [rsp + 0xa8]
mov r12, rcx
cmovne r12d, eax
mov qword [rsp + 0xe8], r12
mov esi, 0x38
cmp edi, esi
cmovb esi, edi
lea rdx, [0x00404638]
movsxd r8, dword [rdx + rsi*4]
add rdx, r8
jmp rdx
mov qword [rsp + 0x70], r11
jmp 0x405512
mov qword [rsp + 0x70], r11
jmp 0x405512
mov qword [rsp + 0x70], r11
jmp 0x405512
mov qword [rsp + 0x70], r11
jmp 0x405512
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
mov rcx, qword [rsp + 0x1b8]
jmp 0x404e71
mov qword [rsp + 0x70], r11
jmp 0x405512
mov r11, qword [rsp + 0x1b8]
jmp 0x404c5c
mov qword [rsp + 0x70], r11
jmp 0x405512
mov qword [rsp + 0x70], r11
jmp 0x405512
mov qword [rsp + 0x70], r11
jmp 0x405512
mov r11, qword [rsp + 0x1b8]
jmp 0x404c5c
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
mov rcx, qword [rsp + 0x1b8]
jmp 0x404e71
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
mov r8, qword [r14 + rsi + 0x38]
xor ecx, ecx
mov r12d, 0x400
jmp 0x404cdb
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
mov esi, dword [r14 + rsi + 0x38]
mov edx, 0x42f
mov qword [rsp + 0xb0], rdx
test esi, esi
cmovne edx, esi
mov qword [rsp + 0xb0], rdx
jmp 0x404b9f
mov r11d, 0x78
mov eax, 8
mov r12, qword [rsp + 0xe8]
or r12d, 8
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0xe8], r12
cmp eax, r9d
cmovae r9d, eax
mov rcx, qword [rsp + 0x1b8]
mov qword [rsp + 0x38], r9
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
jmp 0x404e71
mov r9, qword [rsp + 0x38]
mov r11, qword [rsp + 0x1b8]
mov rdx, r11
sub edx, 0x370
mov rcx, qword [r14 + rdx + 0x38]
mov edx, 0xfffffcc8
lea r8d, [r11 + rdx]
test rcx, rcx
jne 0x4048ac
mov qword [rsp + 0xb0], r8
mov r12, qword [rsp + 0xe8]
jmp 0x4048fd
mov qword [rsp + 0xb0], r8
mov r10, rcx
and r10d, 7
or r10d, 0x30
mov r11d, 0xffffffff
mov rdx, qword [rsp + 0xb0]
add edx, r11d
mov qword [rsp + 0xb0], rdx
mov byte [r14 + rdx], r10b
mov r11, rcx
shr r11, 3
cmp rcx, 7
jbe 0x4048f5
mov rcx, r11
jmp 0x4048b4
mov r12, qword [rsp + 0xe8]
mov rax, r12
and eax, 8
xor ecx, ecx
mov r12d, 0x400
test eax, eax
jne 0x40492d
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0x38], r9
jmp 0x404f51
mov rax, qword [rsp + 0xb0]
sub r8d, eax
lea r11d, [r8 + 1]
cmp r9d, r8d
cmovg r11d, r9d
xor ecx, ecx
mov qword [rsp + 0x38], r11
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
jmp 0x404f51
and ebx, 0xff
xor r10d, r10d
mov esi, 8
cmp ebx, esi
cmovb esi, ebx
lea rdx, [0x00404982]
movsxd r8, dword [rdx + rsi*4]
add rdx, r8
jmp rdx
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
jmp 0x403e25
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
jmp 0x403e25
mov r11, qword [rsp + 0x1b8]
mov r8, r11
sub r8d, 0x370
add r8, r14
mov rdi, qword [rsp + 0x30]
movsxd r9, edi
mov r8d, dword [r8 + 0x38]
mov qword [r14 + r8], r9
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov r10, r11
sub r10d, 0x370
add r10, r14
mov r10d, dword [r10 + 0x38]
mov dword [r14 + r10], edi
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
add rsi, r14
mov esi, dword [rsi + 0x38]
mov byte [r14 + rsi], dil
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov rax, r11
sub eax, 0x370
add rax, r14
mov eax, dword [rax + 0x38]
mov word [r14 + rax], di
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov rdx, r11
sub edx, 0x370
add rdx, r14
movsxd r8, edi
mov edx, dword [rdx + 0x38]
mov qword [r14 + rdx], r8
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov r9, r11
sub r9d, 0x370
add r9, r14
mov r9d, dword [r9 + 0x38]
mov dword [r14 + r9], edi
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov rdi, qword [rsp + 0x30]
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
lea r11, [r14 + rsi]
mov r11d, dword [r11 + 0x38]
mov dword [r14 + r11], edi
xor r10d, r10d
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov edx, dword [r14 + 0xe44]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004035f0
mov qword [rsp + 0xb0], rax
mov eax, 0x7fffffff
mov r9, qword [rsp + 0x38]
cmp eax, r9d
mov rcx, r9
cmovb ecx, eax
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.00409fd0
xor ecx, ecx
mov rdx, qword [rsp + 0xb0]
lea r11d, [rdx + rax]
mov rdi, qword [rsp + 0xa8]
mov r8, rdi
and r8d, dword [0x00408c18]
mov r12d, 0x400
mov r9, qword [rsp + 0x38]
test r9d, r9d
jl 0x404c1d
mov qword [rsp + 0x38], rax
mov qword [rsp + 0xa8], r8
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x90], r12
jmp 0x4080f5
movzx rsi, byte [r14 + r11]
xor ecx, ecx
mov rdi, qword [rsp + 0xa8]
and edi, dword [0x00408c18]
mov qword [rsp + 0xa8], rdi
test esi, esi
jne 0x408b8d
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x90], r12
jmp 0x4080f5
mov r11, qword [rsp + 0x1b8]
mov r10, r11
sub r10d, 0x370
mov r8, qword [r14 + r10 + 0x38]
test r8, r8
jge 0x404c94
neg r8
mov qword [r14 + r10 + 0x38], r8
mov ecx, 1
mov r12d, 0x400
jmp 0x404cdb
mov r12, qword [rsp + 0xe8]
mov rax, r12
and eax, 0x800
test eax, eax
je 0x404cbd
mov ecx, 1
mov r12d, 0x401
jmp 0x404cdb
mov r12, qword [rsp + 0xe8]
mov rcx, r12
and ecx, 1
mov r12d, 0x400
test ecx, ecx
cmovne r12d, dword [0x00408c20]
cmp r8, qword [0x00408c28]
jae 0x404d06
mov esi, 0xfffffcc8
mov r11, qword [rsp + 0x1b8]
lea r10d, [r11 + rsi]
mov qword [rsp + 0xb0], r10
jmp 0x404d6f
mov edi, 0xfffffcc8
mov r11, qword [rsp + 0x1b8]
lea eax, [r11 + rdi]
mov qword [rsp + 0xb0], rax
mov r9d, 0xa
xor rdx, rdx
mov rax, r8
div r9
imul rdi, rax, 0xa
mov rsi, r8
sub rsi, rdi
or esi, 0x30
mov edi, 0xffffffff
mov r9, qword [rsp + 0xb0]
add r9d, edi
mov qword [rsp + 0xb0], r9
mov byte [r14 + r9], sil
cmp r8, qword [0x00408c30]
jbe 0x404d6c
mov r8, rax
jmp 0x404d1f
mov r8, rax
test r8d, r8d
jne 0x404d8d
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
jmp 0x404f51
mov r9d, 0xa
xor rdx, rdx
mov rax, r8
div r9d
imul r10d, eax, 0xa
mov r9, r8
sub r9d, r10d
or r9d, 0x30
mov edx, 0xffffffff
mov r10, qword [rsp + 0xb0]
add r10d, edx
mov qword [rsp + 0xb0], r10
mov byte [r14 + r10], r9b
cmp r8d, 9
jbe 0x404dd8
mov r8, rax
jmp 0x404d8d
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
jmp 0x404f51
mov r11, qword [rsp + 0x1b8]
mov r10, r11
sub r10d, 0x370
mov r11, qword [r14 + r10 + 0x38]
mov byte [r14 + r10 + 0x37], r11b
mov r9d, 1
mov qword [rsp + 0x38], r9
mov r11d, 0xfffffcc8
mov rcx, qword [rsp + 0x1b8]
add r11d, ecx
mov esi, 0xfffffcc7
mov r9, qword [rsp + 0x1b8]
lea edx, [r9 + rsi]
mov qword [rsp + 0xb0], rdx
xor ecx, ecx
mov rdx, qword [rsp + 0xa8]
and edx, dword [0x00408c18]
mov qword [rsp + 0xa8], rdx
mov r12d, 0x400
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x90], r12
jmp 0x4080f5
mov rcx, qword [rsp + 0x1b8]
mov rsi, rcx
sub esi, 0x370
mov r9, qword [r14 + rsi + 0x38]
test r9, r9
jne 0x404eb6
mov eax, 0xfffffcc8
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rax]
mov qword [rsp + 0xb0], rdx
xor ecx, ecx
mov r12d, 0x400
jmp 0x404f51
mov ecx, 0xfffffcc8
mov r10, qword [rsp + 0x1b8]
lea edx, [r10 + rcx]
mov qword [rsp + 0xb0], rdx
mov rcx, r11
and ecx, 0x20
mov rdx, r9
and edx, 0xf
add edx, 0xd40
movzx rdx, byte [r14 + rdx]
or edx, ecx
mov r8d, 0xffffffff
mov rax, qword [rsp + 0xb0]
add eax, r8d
mov r8, rax
mov qword [rsp + 0xb0], rax
mov byte [r14 + r8], dl
mov r8, r9
shr r8, 4
cmp r9, 0xf
jbe 0x404f21
mov r9, r8
jmp 0x404ed5
mov rcx, qword [rsp + 0xa8]
mov r10, rcx
and r10d, 8
xor ecx, ecx
mov r12d, 0x400
test r10d, r10d
je 0x404f51
mov ecx, 2
sar r11d, 4
lea r12d, [r11 + 0x400]
test r13d, r13d
jne 0x404f67
mov r11, qword [rsp + 0x1b8]
jmp 0x404f7d
mov r9, qword [rsp + 0x38]
test r9d, r9d
jl 0x408b8d
mov r11, qword [rsp + 0x1b8]
mov r11, qword [rsp + 0x1b8]
mov rdx, r11
sub edx, 0x370
mov r8, qword [r14 + rdx + 0x38]
test r8, r8
jne 0x405002
mov r9, qword [rsp + 0x38]
test r9d, r9d
jne 0x405002
xor r9d, r9d
mov qword [rsp + 0x38], r9
mov edi, 0xfffffcc8
mov r8, qword [rsp + 0x1b8]
lea r11d, [r8 + rdi]
mov r10, qword [rsp + 0xa8]
mov rdi, r10
and edi, dword [0x00408c18]
test r13d, r13d
mov rax, qword [rsp + 0xa8]
cmovne eax, edi
mov qword [rsp + 0xa8], rax
mov rdx, r11
mov qword [rsp + 0x90], r12
mov qword [rsp + 0xb0], r11
jmp 0x4080f5
mov edx, 0xfffffcc8
mov r9, qword [rsp + 0x1b8]
lea r11d, [r9 + rdx]
mov rsi, qword [rsp + 0xb0]
mov r9, r11
sub r9d, esi
test r8, r8
sete dl
movzx edx, dl
lea r8d, [r9 + rdx]
mov r9, qword [rsp + 0x38]
cmp r8d, r9d
cmovge r9d, r8d
mov qword [rsp + 0x38], r9
mov r9, qword [rsp + 0xa8]
mov r8, r9
and r8d, dword [0x00408c18]
test r13d, r13d
mov r10, qword [rsp + 0xa8]
cmovne r10d, r8d
mov qword [rsp + 0xa8], r10
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x90], r12
jmp 0x4080f5
mov r11, qword [rsp + 0x1b8]
mov r10, r11
sub r10d, 0x370
mov r12d, dword [r14 + r10 + 0x38]
mov r9, qword [rsp + 0x38]
test r9d, r9d
jne 0x4050f0
xor r15d, r15d
mov rdx, qword [rsp + 0xe8]
jmp 0x405171
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
mov dword [r14 + rsi + 0xc], 0
mov rdi, qword [r14 + rsi + 0x38]
mov dword [r14 + rsi + 8], edi
mov eax, 0xfffffc98
lea r12d, [r11 + rax]
mov dword [r14 + rsi + 0x38], r12d
mov r9d, 0xffffffff
mov qword [rsp + 0x38], r9
xor r15d, r15d
mov r13d, 0xfffffc94
mov rbx, r12
mov r8d, ebx
mov ecx, dword [r14 + r8]
test ecx, ecx
je 0x405160
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r13]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.00403810
test eax, eax
jl 0x405158
mov r9, qword [rsp + 0x38]
mov rdi, r9
sub edi, r15d
cmp eax, edi
ja 0x405158
add r15d, eax
add ebx, 4
mov r9, qword [rsp + 0x38]
cmp r9d, r15d
ja 0x4050fc
jmp 0x405160
test eax, eax
jl 0x408b98
test r15d, r15d
jl 0x408b8d
mov rdx, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xe8]
mov r9, rdx
and r9d, 0x12000
test r9d, r9d
jne 0x4052a3
mov r13, qword [rsp + 0xd8]
cmp r13d, r15d
jle 0x4052a3
mov ebx, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov rax, r13
sub eax, r15d
mov r9d, 0x100
cmp r9d, eax
mov r8, rax
cmovb r8d, r9d
mov r13, rax
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r13
cmp ecx, 0x100
jae 0x405200
mov rax, qword [rsp + 0x1b0]
mov rcx, r13
jmp 0x40526b
mov rax, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + rax]
and ecx, 0x20
test ecx, ecx
jne 0x40523b
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov ecx, 0x100
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r11d, 0xffffff00
mov rcx, r13
add ecx, r11d
cmp ecx, 0xff
jbe 0x405263
mov rax, qword [rsp + 0x1b0]
mov r13, rcx
jmp 0x405208
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx r10, byte [r14 + rax]
and r10d, 0x20
test r10d, r10d
jne 0x4052a3
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
test r15d, r15d
jne 0x4052b9
mov r12, qword [rsp + 0xe8]
jmp 0x405357
xor ebx, ebx
mov eax, 0xfffffc94
mov r11, qword [rsp + 0x1b8]
lea r13d, [r11 + rax]
mov ecx, r12d
mov ecx, dword [r14 + rcx]
test ecx, ecx
jne 0x4052e8
mov r12, qword [rsp + 0xe8]
jmp 0x405357
mov rdx, r13
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.00403810
add ebx, eax
mov rcx, rax
cmp ebx, r15d
jbe 0x405313
mov r12, qword [rsp + 0xe8]
jmp 0x405357
mov rax, qword [rsp + 0x1b0]
movzx r11, byte [r14 + rax]
and r11d, 0x20
test r11d, r11d
jne 0x405342
mov rdx, r13
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
add r12d, 4
cmp ebx, r15d
jb 0x4052cc
mov r12, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xe8]
and r12d, 0x12000
mov qword [rsp + 0xe8], r12
cmp r12d, 0x2000
je 0x405388
mov r13, qword [rsp + 0xd8]
jmp 0x4054d7
mov r13, qword [rsp + 0xd8]
cmp r13d, r15d
jg 0x4053a6
mov r13, qword [rsp + 0xd8]
jmp 0x4054d7
mov r10d, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r10]
mov rbx, rdx
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov r9, r13
sub r9d, r15d
mov r12d, 0x100
cmp r12d, r9d
mov r8, r9
cmovb r8d, r12d
mov qword [rsp + 0x48], r9
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x48]
cmp ecx, 0x100
jae 0x405416
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x48]
jmp 0x405495
mov r13d, 0xffffff00
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx r10, byte [r14 + rax]
and r10d, 0x20
test r10d, r10d
je 0x405448
mov rcx, qword [rsp + 0x48]
jmp 0x405465
mov rcx, r12
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x48]
lea edx, [rcx + r13]
cmp edx, 0xff
jbe 0x40548a
mov rcx, rdx
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x48], rcx
jmp 0x405424
add ecx, r13d
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rdx, byte [r14 + rax]
and edx, 0x20
test edx, edx
je 0x4054ba
mov r13, qword [rsp + 0xd8]
jmp 0x4054d7
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r13, qword [rsp + 0xd8]
cmp r15d, r13d
mov r13, qword [rsp + 0xd8]
cmovge r13d, r15d
mov qword [rsp + 0xd8], r13
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xd8]
mov qword [rsp + 0x28], rsi
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
test r13d, r13d
jne 0x405528
mov r11, qword [rsp + 0x1b8]
jmp 0x40553e
mov r9, qword [rsp + 0x38]
test r9d, r9d
jl 0x408b8d
mov r11, qword [rsp + 0x1b8]
mov r11, qword [rsp + 0x1b8]
mov r8, r11
sub r8d, 0x370
vmovsd xmm0, qword [r14 + r8 + 0x38]
mov dword [r14 + r8 + 0x6c], 0
mov qword [rsp + 0x198], r8
vmovq r9, xmm0
xor r10, r10
mov qword [rsp + 0x190], r10
test r9, r9
jge 0x4055b2
movabs r9, 0x8000000000000000
vmovq xmm2, r9
vxorpd xmm0, xmm0, xmm2
mov ecx, 1
mov edx, 0x40a
xor edi, edi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x80], rdx
jmp 0x40561c
mov r12, qword [rsp + 0xe8]
mov rsi, r12
and esi, 0x800
test esi, esi
je 0x4055e9
mov ecx, 1
mov edx, 0x40d
xor edi, edi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x80], rdx
jmp 0x40561c
mov r12, qword [rsp + 0xe8]
mov rcx, r12
and ecx, 1
mov edx, 0x40b
test ecx, ecx
cmovne edx, dword [0x00408c38]
mov qword [rsp + 0x80], rdx
test ecx, ecx
sete r8b
movzx edi, r8b
mov qword [rsp + 0x60], rdi
movabs rdx, 0x7fffffffffffffff
vmovq xmm1, rdx
vandpd xmm3, xmm0, xmm1
movdqu xmmword [rsp + 0x50], xmm0
movabs r8, 0x7ff0000000000000
vmovq xmm2, r8
ucomisd xmm2, xmm3
ja 0x405a2a
mov r12, qword [rsp + 0xe8]
mov r11, r12
and r11d, 0x2000
test r11d, r11d
je 0x40567e
mov r15, rcx
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x68], rcx
jmp 0x4057de
lea r9d, [rcx + 3]
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0x68], rcx
cmp r13d, r9d
jg 0x4056aa
mov r15, qword [rsp + 0x68]
mov rax, qword [rsp + 0x1b0]
jmp 0x4057de
mov r12d, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r12]
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov rsi, r13
sub esi, r9d
mov ebx, 0x100
cmp ebx, esi
mov r8, rsi
cmovb r8d, ebx
mov r13, rsi
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r13
cmp ecx, 0x100
jae 0x405711
mov r15, qword [rsp + 0x68]
mov rcx, r13
mov rdi, qword [rsp + 0x1b0]
jmp 0x405791
mov rdx, qword [rsp + 0x1b0]
mov r15, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + rdx]
and ecx, 0x20
test ecx, ecx
je 0x40573e
mov rcx, r13
jmp 0x405762
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r12]
mov rcx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, r13
lea r10d, [rcx + r12]
cmp r10d, 0xff
jbe 0x405786
mov rcx, r10
mov rdx, qword [rsp + 0x1b0]
mov r13, rcx
jmp 0x40571e
add ecx, r12d
mov rdi, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1b0]
movzx r8, byte [r14 + rdi]
and r8d, 0x20
test r8d, r8d
je 0x4057b8
mov rax, qword [rsp + 0x1b0]
jmp 0x4057de
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r12]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
mov esi, dword [r14 + rax]
mov r8, rsi
and r8d, 0x20
test r8d, r8d
jne 0x405823
mov rcx, r15
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rax, qword [rsp + 0x1b0]
mov esi, dword [r14 + rax]
and esi, 0x20
test esi, esi
je 0x40583b
mov r12, qword [rsp + 0xe8]
jmp 0x405891
mov r11, qword [rsp + 0x70]
and r11d, 0x20
mov edi, 0x425
test r11d, r11d
cmovne edi, dword [0x00408c40]
mov edx, 0x429
test r11d, r11d
cmovne edx, dword [0x00408c48]
movdqu xmm0, xmmword [rsp + 0x50]
ucomisd xmm0, xmm0
cmovp edx, edi
cmovne edx, edi
mov ecx, 3
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r12, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xe8]
and r12d, 0x12000
mov qword [rsp + 0xe8], r12
cmp r12d, 0x2000
je 0x4058bf
mov rcx, qword [rsp + 0x68]
jmp 0x4059fb
mov rcx, qword [rsp + 0x68]
lea r10d, [rcx + 3]
mov r13, qword [rsp + 0xd8]
cmp r13d, r10d
jg 0x4058e3
mov rcx, qword [rsp + 0x68]
jmp 0x4059fb
mov ebx, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov r12, rdx
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov r9, r13
sub r9d, r10d
mov r15d, 0x100
cmp r15d, r9d
mov r8, r9
cmovb r8d, r15d
mov r13, r9
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r13
cmp ecx, 0x100
jae 0x40594c
mov rax, qword [rsp + 0x1b0]
mov rcx, r13
jmp 0x4059bd
mov rcx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b0]
movzx rsi, byte [r14 + rcx]
and esi, 0x20
test esi, esi
je 0x405974
mov rcx, r13
jmp 0x40598f
mov rcx, r15
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, r13
lea r8d, [rcx + rbx]
cmp r8d, 0xff
jbe 0x4059b3
mov rcx, r8
mov r13, rcx
mov rcx, qword [rsp + 0x1b0]
jmp 0x405954
add ecx, ebx
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx r9, byte [r14 + rax]
and r9d, 0x20
test r9d, r9d
je 0x4059e1
mov rcx, qword [rsp + 0x68]
jmp 0x4059fb
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x68]
lea r10d, [rcx + 3]
mov r13, qword [rsp + 0xd8]
cmp r13d, r10d
cmovge r10d, r13d
mov rdi, qword [rsp + 0x30]
mov qword [rsp + 0x28], r10
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
jmp 0x403e25
mov qword [rsp + 0x68], rcx
movdqu xmm0, xmmword [rsp + 0x50]
mov eax, 0xfffffcfc
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rax]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.00403850
vaddsd xmm7, xmm0, xmm0
vxorpd xmm1, xmm0, xmm0
ucomisd xmm7, xmm1
jp 0x405a6b
je 0x405ae4
mov rdi, qword [rsp + 0x198]
mov r9d, dword [r14 + rdi + 0x6c]
mov r8d, 0xffffffff
add r8d, r9d
mov dword [r14 + rdi + 0x6c], r8d
mov r11, qword [rsp + 0x70]
mov rdx, r11
or edx, 0x20
cmp edx, 0x61
mov qword [rsp + 0x170], rdx
jne 0x405ab4
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x198], rdi
jmp 0x407400
mov esi, 0xffffffe3
lea r13d, [r9 + rsi]
mov dword [r14 + rdi + 0x6c], r13d
vmulsd xmm7, xmm7, qword [0x00408c50]
mov r9, qword [rsp + 0x38]
test r9d, r9d
cmovl r9d, dword [0x00408c60]
mov qword [rsp + 0x38], r9
jmp 0x405b38
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x198]
mov r11, rsi
or r11d, 0x20
mov rax, r11
mov qword [rsp + 0x170], r11
cmp eax, 0x61
jne 0x405b1e
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x198], rdi
jmp 0x407400
mov r13d, dword [r14 + rdi + 0x6c]
mov r9, qword [rsp + 0x38]
test r9d, r9d
cmovl r9d, dword [0x00408c60]
mov qword [rsp + 0x38], r9
mov esi, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
add esi, r11d
xor r10d, r10d
test r13d, r13d
mov qword [rsp + 0x48], r13
cmovge r10d, dword [0x00408c68]
mov r11, r10
shl r11d, 2
mov qword [rsp + 0x98], r11
lea r13d, [rsi + r10*4]
mov qword [rsp + 0x180], r13
mov qword [rsp + 0x188], rsi
mov r9, qword [rsp + 0x48]
mov r10, qword [rsp + 0x180]
movabs rsi, 0x41f0000000000000
vmovq xmm2, rsi
ucomisd xmm2, xmm7
seta r11b
vxorpd xmm3, xmm1, xmm1
ucomisd xmm7, xmm3
setae cl
and r11d, ecx
movzx ecx, r11b
test ecx, ecx
je 0x405c0f
movabs r8, 0x41e0000000000000
movq xmm3, r8
ucomisd xmm7, xmm3
jae 0x405bed
jp 0x408bf2
cvttsd2si r11d, xmm7
cmp r11d, 0
jge 0x405c12
ud2
movaps xmm4, xmm7
subsd xmm4, xmm3
cvttsd2si r11d, xmm4
cmp r11d, 0
jl 0x408bf4
add r11d, 0x80000000
jmp 0x405c12
xor r11d, r11d
mov edx, r10d
mov dword [r14 + rdx], r11d
vxorpd xmm4, xmm2, xmm2
mov r11d, r11d
vcvtsi2sd xmm0, xmm4, r11
vsubsd xmm5, xmm7, xmm0
vmulsd xmm7, xmm5, qword [0x00408c70]
vxorpd xmm6, xmm4, xmm4
add r10d, 4
ucomisd xmm7, xmm6
jp 0x405b8b
jne 0x405b8b
test r9d, r9d
jg 0x405c5f
mov r12, qword [rsp + 0x180]
jmp 0x405d3a
mov r13d, 0x1d
mov r12, qword [rsp + 0x180]
mov r8d, 0xfffffffc
lea r11d, [r10 + r8]
cmp r11d, r12d
jb 0x405cee
mov eax, 0x1d
cmp eax, r9d
mov rsi, r9
cmovl esi, eax
mov rax, qword [rsp + 0x190]
mov r15d, r11d
mov ecx, dword [r14 + r15]
shlx rcx, rcx, rsi
and rax, qword [0x00408c00]
lea rbx, [rcx + rax]
mov ecx, 0x3b9aca00
xor rdx, rdx
mov rax, rbx
div rcx
imul rcx, rax, 0x3b9aca00
sub rbx, rcx
mov dword [r14 + r15], ebx
mov ecx, 0xfffffffc
add r11d, ecx
cmp r11d, r12d
jae 0x405c96
test eax, eax
je 0x405cee
mov ecx, 0xfffffffc
add r12d, ecx
mov dword [r14 + r12], eax
cmp r10d, r12d
jbe 0x405d13
mov esi, 0xfffffffc
add esi, r10d
mov eax, dword [r14 + rsi]
test eax, eax
jne 0x405d13
mov r10, rsi
jmp 0x405cee
mov eax, dword [r14 + rdi + 0x6c]
cmp r13d, r9d
cmovl r9d, r13d
sub eax, r9d
mov dword [r14 + rdi + 0x6c], eax
test eax, eax
jle 0x405d37
mov r9, rax
jmp 0x405c6d
mov r9, rax
test r9d, r9d
jl 0x405d50
mov qword [rsp + 0x198], rdi
jmp 0x405e5a
mov rcx, qword [rsp + 0x38]
lea eax, [rcx + 0x19]
mov r8d, 9
xor rdx, rdx
div r8d
lea edx, [rax + 1]
cmp r12d, r10d
jb 0x405d7c
mov r11d, r12d
mov esi, dword [r14 + r11]
jmp 0x405de7
xor r11d, r11d
mov rsi, r9
neg esi
mov eax, 9
cmp eax, esi
cmovl esi, eax
mov eax, 0xffffffff
shlx eax, eax, esi
mov ecx, 0x3b9aca00
shrx r15d, ecx, esi
mov rbx, r12
mov ecx, ebx
mov r8d, dword [r14 + rcx]
shrx r13d, r8d, esi
add r11d, r13d
mov dword [r14 + rcx], r11d
add ebx, 4
andn r11d, eax, r8d
imul r11d, r15d
cmp ebx, r10d
jb 0x405da5
mov r8d, r12d
mov esi, dword [r14 + r8]
test r11d, r11d
je 0x405de7
mov r8d, r10d
mov dword [r14 + r8], r11d
add r10d, 4
mov r11d, dword [r14 + rdi + 0x6c]
neg r9d
mov eax, 9
cmp eax, r9d
cmovl r9d, eax
add r9d, r11d
mov dword [r14 + rdi + 0x6c], r9d
mov qword [rsp + 0x198], rdi
test esi, esi
sete dil
movzx edi, dil
lea r12d, [r12 + rdi*4]
mov rdi, qword [rsp + 0x170]
cmp edi, 0x66
mov r13, qword [rsp + 0x180]
mov rax, r12
cmove eax, r13d
mov rdi, r10
sub edi, eax
sar edi, 2
lea eax, [rax + rdx*4]
cmp edi, edx
cmovg r10d, eax
test r9d, r9d
jge 0x405e5a
mov rdi, qword [rsp + 0x198]
jmp 0x405d67
xor edi, edi
cmp r12d, r10d
jb 0x405e72
mov rax, qword [rsp + 0x170]
jmp 0x405ec1
mov edi, r12d
mov eax, dword [r14 + rdi]
mov r13, qword [rsp + 0x180]
mov rsi, r13
sub esi, r12d
sar esi, 2
imul edi, esi, 9
cmp eax, 0xa
jae 0x405ea3
mov rax, qword [rsp + 0x170]
jmp 0x405ec1
mov r9d, 0xa
imul r9d, r9d, 0xa
add edi, 1
cmp eax, r9d
jae 0x405ea9
mov rax, qword [rsp + 0x170]
mov rax, qword [rsp + 0x170]
cmp eax, 0x66
mov r11, rdi
cmove r11d, dword [0x00408c80]
mov r9, qword [rsp + 0x38]
mov rdx, r9
sub edx, r11d
test r9d, r9d
setne r11b
mov rsi, qword [rsp + 0x170]
cmp esi, 0x67
sete al
and r11d, eax
movzx eax, r11b
sub edx, eax
mov r13, qword [rsp + 0x180]
mov rsi, r10
sub esi, r13d
sar esi, 2
imul eax, esi, 9
mov ecx, 0xfffffff7
add eax, ecx
cmp edx, eax
jl 0x405f31
mov rax, qword [rsp + 0x188]
jmp 0x40626f
lea eax, [rdx + 0x2400]
cdq
mov r8d, 9
mov r11, rax
idiv r8d
imul edx, eax, 9
sub r11d, edx
mov r9d, 0xa
cmp r11d, 7
jg 0x405fcb
mov r9d, 0xffffffff
lea esi, [r11 + r9]
mov r9d, 0xa
cmp esi, 7
jb 0x405f9d
mov r9d, 0xa
mov esi, 8
sub esi, r11d
and esi, dword [0x00408c88]
mov ecx, 0xfffffff8
add esi, ecx
imul r9d, r9d, 0x5f5e100
test esi, esi
jne 0x405f87
mov edx, 8
sub edx, r11d
mov rcx, rdx
and ecx, 7
test ecx, ecx
je 0x405fcb
and edx, 7
mov r11d, 0xffffffff
add edx, r11d
imul r9d, r9d, 0xa
test edx, edx
jne 0x405fb6
mov rsi, rax
shl esi, 2
mov qword [rsp + 0x168], rsi
mov ebx, 0x49
mov r13, qword [rsp + 0x48]
test r13d, r13d
cmovl ebx, dword [0x00408c90]
mov rcx, qword [rsp + 0x188]
lea edx, [rcx + rbx*4]
lea ecx, [rdx + rax*4]
mov r11d, 0xfffff000
lea eax, [rcx + r11]
mov esi, dword [r14 + rax]
mov qword [rsp + 0x160], rax
xor rdx, rdx
mov rax, rsi
div r9d
mov r8, rax
imul r8d, r9d
mov r15, rsi
sub r15d, r8d
test r15d, r15d
jne 0x406046
mov edx, 0xfffff004
lea r8d, [rcx + rdx]
lea r13d, [rcx + r11]
cmp r8d, r10d
je 0x40625c
and eax, 1
test eax, eax
jne 0x4060b3
movabs rax, 0x4340000000000000
vmovq xmm3, rax
cmp r9d, 0x3b9aca00
jne 0x4060c2
lea r8d, [rcx + r11]
movabs rax, 0x4340000000000000
vmovq xmm3, rax
cmp r8d, r12d
jbe 0x4060c2
mov r8d, 0xffffeffc
add r8d, ecx
movzx r8, byte [r14 + r8]
and r8d, 1
movabs rdx, 0x4340000000000000
vmovq xmm3, rdx
test r8d, r8d
je 0x4060c2
movabs rax, 0x4340000000000001
vmovq xmm3, rax
mov rax, r9
shr eax, 1
movabs rdx, 0x3fe0000000000000
vmovq xmm7, rdx
mov edx, 0xfffff004
lea r8d, [rcx + rdx]
movabs rdx, 0x3ff0000000000000
vmovq xmm0, rdx
movabs rdx, 0x3ff8000000000000
vmovq xmm4, rdx
cmp r8d, r10d
movdqa xmm1, xmm4
jne 0x40610f
movsd xmm1, xmm0
cmp r15d, eax
jne 0x40611c
movsd xmm4, xmm1
cmp r15d, eax
jae 0x406129
movsd xmm4, xmm7
mov rax, qword [rsp + 0x60]
test eax, eax
jne 0x406174
mov rax, qword [rsp + 0x80]
mov edx, eax
movzx rdx, byte [r14 + rdx]
cmp edx, 0x2d
jne 0x406174
movabs rdx, 0x8000000000000000
vmovq xmm5, rdx
vxorpd xmm3, xmm3, xmm5
movabs rdx, 0x8000000000000000
vmovq xmm5, rdx
vxorpd xmm4, xmm4, xmm5
sub esi, r15d
mov rdx, qword [rsp + 0x160]
mov dword [r14 + rdx], esi
vaddsd xmm5, xmm3, xmm4
lea r13d, [rcx + r11]
ucomisd xmm5, xmm3
jp 0x40619b
je 0x40625c
lea eax, [rsi + r9]
mov dword [r14 + rdx], eax
lea r13d, [rcx + r11]
cmp eax, 0x3b9aca00
jb 0x406222
mov r11d, 0xffffecfc
mov rdx, qword [rsp + 0x1b8]
add r11d, edx
mov rax, qword [rsp + 0x168]
lea esi, [rax + rbx*4]
lea r13d, [r11 + rsi]
mov r11d, 0xfffffffc
lea esi, [r13 + 4]
mov dword [r14 + rsi], 0
cmp r13d, r12d
jae 0x4061f9
add r12d, r11d
mov dword [r14 + r12], 0
mov edx, r13d
mov r8d, dword [r14 + rdx]
add r8d, 1
mov dword [r14 + rdx], r8d
lea r9d, [r13 + r11]
cmp r8d, 0x3b9ac9ff
jbe 0x406222
mov r13, r9
jmp 0x4061d9
mov eax, r12d
mov eax, dword [r14 + rax]
mov r9, qword [rsp + 0x180]
mov rdi, r9
sub edi, r12d
sar edi, 2
imul edi, edi, 9
cmp eax, 0xa
jb 0x40625c
mov r11d, 0xa
imul r11d, r11d, 0xa
add edi, 1
cmp eax, r11d
jae 0x40624c
lea esi, [r13 + 4]
cmp esi, r10d
cmovb r10d, esi
mov rax, qword [rsp + 0x188]
mov rsi, r10
sub esi, eax
mov r11, qword [rsp + 0x98]
sub esi, r11d
mov eax, 0xfffffffc
cmp r10d, r12d
ja 0x40629a
mov r8, qword [rsp + 0x170]
jmp 0x4062c0
lea r9d, [r10 + rax]
mov edx, dword [r14 + r9]
lea ecx, [rsi + rax]
test edx, edx
jne 0x4062b8
mov rsi, rcx
mov r10, r9
jmp 0x406284
mov r8, qword [rsp + 0x170]
mov r8, qword [rsp + 0x170]
cmp r8d, 0x67
je 0x4062fa
mov r9, qword [rsp + 0xe8]
mov rcx, r9
and ecx, 8
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x130], r10
mov qword [rsp + 0x178], r12
jmp 0x4064a2
mov rdx, qword [rsp + 0xe8]
mov rcx, rdx
and ecx, 8
mov edx, 1
mov r9, qword [rsp + 0x38]
test r9d, r9d
cmovne edx, r9d
cmp edx, edi
setg r8b
cmp edi, dword [0x00408c98]
setg r9b
and r8d, r9d
mov r9, rdi
not r9d
mov r15d, 0xffffffff
test r8b, r8b
cmovne r15d, r9d
lea r9d, [r15 + rdx]
mov qword [rsp + 0x38], r9
mov r9d, 0xfffffffe
test r8b, r8b
cmovne r9d, dword [0x00408c00]
mov r8, qword [rsp + 0x70]
add r8d, r9d
mov qword [rsp + 0x70], r8
test ecx, ecx
je 0x406388
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x130], r10
mov qword [rsp + 0x178], r12
jmp 0x4064a2
mov ecx, 0xfffffff7
cmp r10d, r12d
mov qword [rsp + 0x178], r12
ja 0x4063b0
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x130], r10
jmp 0x406423
add eax, r10d
mov qword [rsp + 0x130], r10
mov r9d, dword [r14 + rax]
mov ecx, 0xfffffff7
test r9d, r9d
jne 0x4063d7
mov rdx, qword [rsp + 0x70]
jmp 0x406423
mov ecx, 0xa
xor rdx, rdx
mov rax, r9
div ecx
xor ecx, ecx
test edx, edx
je 0x4063f8
mov rdx, qword [rsp + 0x70]
jmp 0x406423
xor ecx, ecx
mov r8d, 0xa
imul r8d, r8d, 0xa
xor rdx, rdx
mov rax, r9
div r8d
mov r10d, 0xffffffff
add ecx, r10d
test edx, edx
je 0x406400
mov rdx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x70]
mov r10, rdx
and r10d, dword [0x00408c10]
cmp r10d, 0x46
jne 0x406471
sar esi, 2
imul esi, esi, 9
mov eax, 0xfffffff7
add esi, eax
lea r10d, [rsi + rcx]
xor ecx, ecx
cmp ecx, r10d
cmovge r10d, ecx
mov r9, qword [rsp + 0x38]
cmp r10d, r9d
cmovl r9d, r10d
mov qword [rsp + 0x38], r9
mov rax, qword [rsp + 0x38]
jmp 0x4064a2
sar esi, 2
imul edx, esi, 9
mov r8d, 0xfffffff7
add edx, r8d
add ecx, edi
lea eax, [rdx + rcx]
xor ecx, ecx
cmp ecx, eax
cmovge eax, ecx
mov r9, qword [rsp + 0x38]
cmp eax, r9d
cmovl r9d, eax
mov qword [rsp + 0x38], r9
mov rax, qword [rsp + 0x38]
mov r9, rax
or r9d, ecx
mov qword [rsp + 0x88], rcx
mov r8d, 0x7ffffffe
test r9d, r9d
cmovne r8d, dword [0x00408ca0]
mov r10, qword [rsp + 0x38]
cmp r10d, r8d
jg 0x408b8d
mov rax, qword [rsp + 0x70]
mov rcx, rax
and ecx, dword [0x00408c10]
cmp ecx, 0x46
mov qword [rsp + 0x158], rcx
jne 0x40653a
test r9d, r9d
mov qword [rsp + 0x160], r9
setne dl
movzx edx, dl
mov r9, qword [rsp + 0x38]
lea ecx, [r9 + rdx + 1]
xor ecx, 0x7fffffff
cmp edi, ecx
jg 0x408b8d
xor r10d, r10d
cmp r10d, edi
cmovge edi, r10d
mov r9, qword [rsp + 0x160]
mov r12, rdi
mov qword [rsp + 0x98], r11
jmp 0x406691
mov qword [rsp + 0x160], r9
test edi, edi
jne 0x406566
mov eax, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
lea r8d, [r11 + rax]
mov rbx, r8
mov r15, rdi
jmp 0x4065c7
mov ecx, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
lea ebx, [r11 + rcx]
mov rdx, rdi
sar edx, 0x1f
mov rcx, rdi
xor ecx, edx
mov r15, rdi
sub ecx, edx
mov r8, rbx
mov r9d, 0xa
xor rdx, rdx
mov rax, rcx
div r9d
imul r9d, eax, 0xa
mov rdx, rcx
sub edx, r9d
or edx, 0x30
mov r9d, 0xffffffff
add ebx, r9d
mov byte [r14 + rbx], dl
add r8d, r9d
cmp ecx, 9
jbe 0x4065c7
mov rcx, rax
jmp 0x40658a
mov r9d, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
lea r12d, [r11 + r9]
mov r9, r12
sub r9d, r8d
cmp r9d, 1
jg 0x40662a
mov esi, 0xfffffcde
mov r11, qword [rsp + 0x1b8]
lea r10d, [r11 + rsi]
sub r10d, r8d
add ebx, r10d
mov ecx, 0x30
mov rdi, qword [rsp + 0x1b8]
mov r11, rdi
sub r11d, 0x322
sub r8d, r11d
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov esi, 0xfffffffe
lea edi, [rbx + rsi]
mov r11, qword [rsp + 0x70]
mov byte [r14 + rdi], r11b
mov ecx, 0x2b
mov rdx, r15
test edx, edx
cmovl ecx, dword [0x00408ca8]
mov eax, 0xffffffff
add eax, ebx
mov byte [r14 + rax], cl
sub r12d, edi
mov r9, qword [rsp + 0x160]
test r9d, r9d
setne dl
movzx edx, dl
mov r11, qword [rsp + 0x38]
lea ecx, [r11 + rdx + 1]
xor ecx, 0x7fffffff
cmp r12d, ecx
jg 0x408b8d
lea r11d, [rbx + rsi]
mov qword [rsp + 0x98], r11
test r9d, r9d
mov qword [rsp + 0x160], r9
setne sil
movzx esi, sil
mov r9, qword [rsp + 0x38]
add esi, r9d
lea esi, [r12 + rsi + 1]
mov rcx, qword [rsp + 0x68]
mov rdi, rcx
xor edi, 0x7fffffff
cmp esi, edi
jg 0x408b8d
mov r12, qword [rsp + 0xe8]
and r12d, 0x12000
mov qword [rsp + 0xe8], r12
test r12d, r12d
je 0x406701
mov r13, qword [rsp + 0x68]
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x150], rsi
jmp 0x406867
mov rcx, qword [rsp + 0x68]
lea r9d, [rsi + rcx]
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0x150], rsi
cmp r13d, r9d
jg 0x406735
mov r13, qword [rsp + 0x68]
mov rax, qword [rsp + 0x1b0]
jmp 0x406867
mov r15d, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r15]
mov r12, rdx
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov rdx, r13
sub edx, r9d
mov ebx, 0x100
cmp ebx, edx
mov r8, rdx
cmovb r8d, ebx
mov qword [rsp + 0x78], rdx
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x78]
cmp ecx, 0x100
jae 0x4067a8
mov r13, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x1b0]
jmp 0x406825
mov r8, qword [rsp + 0x1b0]
mov r13, qword [rsp + 0x68]
mov r8, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r8]
and ecx, 0x20
test ecx, ecx
je 0x4067d7
mov rcx, qword [rsp + 0x78]
jmp 0x4067f4
mov rcx, rbx
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x78]
lea r11d, [rcx + r15]
cmp r11d, 0xff
jbe 0x40681a
mov rcx, r11
mov r8, qword [rsp + 0x1b0]
mov qword [rsp + 0x78], rcx
jmp 0x4067b5
add ecx, r15d
mov rdx, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x1b0]
movzx rax, byte [r14 + rdx]
and eax, 0x20
test eax, eax
je 0x40684a
mov rax, qword [rsp + 0x1b0]
jmp 0x406867
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx r9, byte [r14 + rax]
and r9d, 0x20
test r9d, r9d
je 0x40688e
mov r12, qword [rsp + 0xe8]
jmp 0x4068b3
mov rcx, r13
mov rdx, qword [rsp + 0x80]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r12, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xe8]
cmp r12d, 0x10000
je 0x4068d5
mov rcx, qword [rsp + 0x158]
jmp 0x406a22
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x150]
lea r10d, [rsi + rcx]
mov r13, qword [rsp + 0xd8]
cmp r13d, r10d
jg 0x406904
mov rcx, qword [rsp + 0x158]
jmp 0x406a22
mov r15d, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r15]
mov r12, rdx
mov ecx, 0x30
mov r13, qword [rsp + 0xd8]
mov r9, r13
sub r9d, r10d
mov ebx, 0x100
cmp ebx, r9d
mov r8, r9
cmovb r8d, ebx
mov r13, r9
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r13
cmp ecx, 0x100
jae 0x40696d
mov rax, qword [rsp + 0x1b0]
mov rcx, r13
jmp 0x4069e0
mov rdi, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1b0]
movzx r11, byte [r14 + rdi]
and r11d, 0x20
test r11d, r11d
je 0x406997
mov rcx, r13
jmp 0x4069b2
mov rcx, rbx
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, r13
lea edx, [rcx + r15]
cmp edx, 0xff
jbe 0x4069d5
mov rcx, rdx
mov rdi, qword [rsp + 0x1b0]
mov r13, rcx
jmp 0x406975
add ecx, r15d
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rsi, byte [r14 + rax]
and esi, 0x20
test esi, esi
je 0x406a05
mov rcx, qword [rsp + 0x158]
jmp 0x406a22
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x158]
cmp ecx, 0x46
jne 0x406e4f
mov r12, qword [rsp + 0x180]
mov r15, qword [rsp + 0x178]
cmp r12d, r15d
cmovb r15d, r12d
mov qword [rsp + 0x178], r15
mov ecx, 0x30
mov qword [rsp + 0x148], rcx
mov edi, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
lea ebx, [r11 + rdi]
mov r12, rbx
or r12d, 8
mov qword [rsp + 0x140], r12
mov r13, rbx
or r13d, 9
mov qword [rsp + 0x138], r13
mov r13, qword [rsp + 0x178]
mov eax, r13d
mov r8d, dword [r14 + rax]
test r8d, r8d
je 0x406b5c
mov r11d, 8
mov edx, 0xfffffce0
mov r10, qword [rsp + 0x1b8]
lea edi, [r10 + rdx]
mov r9d, 0xa
xor rdx, rdx
mov rax, r8
div r9d
imul r9d, eax, 0xa
mov rcx, r8
sub ecx, r9d
or ecx, 0x30
lea edx, [rdi + r11]
mov byte [r14 + rdx], cl
mov r9d, 0xffffffff
add r9d, r11d
cmp r8d, 9
jbe 0x406af7
mov r8, rax
mov r11, r9
jmp 0x406ab5
mov r15, qword [rsp + 0x178]
cmp r13d, r15d
je 0x406b29
lea esi, [r11 + 1]
lea edx, [r11 + rdi]
cmp esi, 2
jge 0x406ba5
mov rax, qword [rsp + 0x1b0]
mov r15, rdx
jmp 0x406bdf
lea edx, [r11 + rdi]
cmp r9d, 8
je 0x406b47
mov rax, qword [rsp + 0x1b0]
mov r15, rdx
jmp 0x406bdf
mov rcx, qword [rsp + 0x148]
mov r8, qword [rsp + 0x198]
jmp 0x406b83
mov r11d, 9
mov r15, qword [rsp + 0x178]
cmp r13d, r15d
jne 0x406ba5
mov rcx, qword [rsp + 0x148]
mov r8, qword [rsp + 0x198]
mov byte [r14 + r8 + 0x58], cl
mov qword [rsp + 0x148], rcx
mov rax, qword [rsp + 0x1b0]
mov r15, qword [rsp + 0x140]
jmp 0x406bdf
lea r8d, [r11 + rbx]
mov eax, 0xffffffff
add eax, r8d
cmp eax, ebx
mov rdx, rbx
cmovb edx, eax
sub r8d, edx
mov r15, rdx
mov rcx, qword [rsp + 0x148]
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + rax]
and ecx, 0x20
test ecx, ecx
jne 0x406c21
mov rdx, r15
mov rdi, qword [rsp + 0x138]
mov rcx, rdi
sub ecx, edx
mov qword [rsp + 0x138], rdi
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
add r13d, 4
mov r12, qword [rsp + 0x180]
cmp r13d, r12d
jbe 0x406a8e
mov r9, qword [rsp + 0x160]
test r9d, r9d
jne 0x406c54
mov r12, qword [rsp + 0x130]
jmp 0x406c9d
mov rax, qword [rsp + 0x1b0]
movzx rsi, byte [r14 + rax]
and esi, 0x20
test esi, esi
je 0x406c79
mov r12, qword [rsp + 0x130]
jmp 0x406c9d
mov edx, 0x42d
mov ecx, 1
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r12, qword [rsp + 0x130]
cmp r13d, r12d
jae 0x406e05
mov r9, qword [rsp + 0x38]
test r9d, r9d
jle 0x406e05
mov ecx, r13d
mov r9d, dword [r14 + rcx]
test r9d, r9d
jne 0x406cd9
mov rcx, qword [rsp + 0x138]
mov r8, qword [rsp + 0x138]
jmp 0x406d40
mov rcx, qword [rsp + 0x138]
mov r8, qword [rsp + 0x138]
mov r10d, 0xa
xor rdx, rdx
mov rax, r9
div r10d
imul r11d, eax, 0xa
mov r10, r9
sub r10d, r11d
or r10d, 0x30
mov r11d, 0xffffffff
add ecx, r11d
mov byte [r14 + rcx], r10b
add r8d, r11d
cmp r9d, 9
jbe 0x406d28
mov r9, rax
jmp 0x406ce9
cmp ecx, ebx
ja 0x406d40
mov r15, rcx
mov rcx, qword [rsp + 0x1b0]
jmp 0x406d6b
add ecx, ebx
sub ecx, r8d
mov r15, rcx
sub r8d, ebx
mov rcx, qword [rsp + 0x148]
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b0]
movzx rax, byte [r14 + rcx]
and eax, 0x20
test eax, eax
jne 0x406db2
mov r9d, 9
mov r11, qword [rsp + 0x38]
cmp r9d, r11d
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
cmovl ecx, r9d
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
add r13d, 4
mov r11d, 0xfffffff7
mov r9, qword [rsp + 0x38]
add r11d, r9d
cmp r13d, r12d
mov qword [rsp + 0x130], r12
jb 0x406ddf
mov qword [rsp + 0x38], r11
jmp 0x406e05
mov r9, qword [rsp + 0x38]
cmp r9d, 9
jle 0x406e00
mov qword [rsp + 0x38], r11
mov r12, qword [rsp + 0x130]
jmp 0x406cb4
mov qword [rsp + 0x38], r11
mov r9d, 9
mov rdi, qword [rsp + 0x38]
lea r8d, [rdi + 9]
xor esi, esi
sub rsp, 0x10
mov dword [rsp], esi
mov rcx, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x10]
call fcn.00409110
add rsp, 0x10
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x150]
jmp 0x40727d
mov r9, qword [rsp + 0x38]
test r9d, r9d
jl 0x4071e2
mov r13d, 0x30
mov qword [rsp + 0x128], r13
mov r9d, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
add r9d, r11d
mov rdi, r9
mov r13, rdi
or r13d, 8
mov qword [rsp + 0x118], r13
mov qword [rsp + 0x120], rdi
mov r13d, 0x42d
mov r9, qword [rsp + 0x120]
mov qword [rsp + 0x110], r13
mov r12, r9
or r12d, 9
mov r15, qword [rsp + 0x178]
mov qword [rsp + 0x108], r12
lea r13d, [r15 + 4]
mov r12, qword [rsp + 0x130]
mov qword [rsp + 0x100], r13
cmp r12d, r15d
cmova r13d, r12d
mov qword [rsp + 0x100], r13
mov r13, qword [rsp + 0x178]
mov r11d, r13d
mov ecx, dword [r14 + r11]
test ecx, ecx
jne 0x406f12
mov r8, qword [rsp + 0x198]
mov r12, qword [rsp + 0x128]
jmp 0x406fac
xor r8d, r8d
mov r9d, 0xa
xor rdx, rdx
mov rax, rcx
div r9d
imul edx, eax, 0xa
mov rdi, rcx
sub edi, edx
or edi, 0x30
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r8]
mov r9d, 0xfffffce8
add edx, r9d
mov byte [r14 + rdx], dil
mov edx, 0xffffffff
add edx, r8d
cmp ecx, 9
jbe 0x406f64
mov rcx, rax
mov r8, rdx
jmp 0x406f15
test edx, edx
jne 0x406f81
mov r8, qword [rsp + 0x198]
mov r12, qword [rsp + 0x128]
jmp 0x406fac
mov r11, qword [rsp + 0x1b8]
mov rsi, r11
sub esi, 0x370
lea r8d, [rsi + r8 + 0x58]
mov r12, qword [rsp + 0x128]
mov r15, qword [rsp + 0x178]
jmp 0x406fc9
mov r8, qword [rsp + 0x198]
mov byte [r14 + r8 + 0x58], r12b
mov r8, qword [rsp + 0x118]
mov r15, qword [rsp + 0x178]
mov r15, qword [rsp + 0x178]
cmp r13d, r15d
je 0x407053
mov rsi, qword [rsp + 0x120]
cmp r8d, esi
ja 0x40700b
mov qword [rsp + 0x128], r12
mov r12, r8
mov r9, qword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x88]
jmp 0x407138
mov rdx, qword [rsp + 0x120]
sub r8d, edx
mov rcx, r12
mov rdx, qword [rsp + 0x120]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov qword [rsp + 0x128], r12
mov rbx, qword [rsp + 0x88]
mov r9, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0x120]
jmp 0x407138
mov rax, qword [rsp + 0x1b0]
mov qword [rsp + 0x128], r12
movzx r9, byte [r14 + rax]
and r9d, 0x20
test r9d, r9d
je 0x407085
mov rbx, qword [rsp + 0x88]
mov r15, r8
jmp 0x4070aa
mov ecx, 1
mov r15, r8
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rbx, qword [rsp + 0x88]
test ebx, ebx
je 0x4070bf
mov r8, qword [rsp + 0x1b0]
jmp 0x4070e6
lea r12d, [r15 + 1]
mov r9, qword [rsp + 0x38]
test r9d, r9d
jg 0x4070de
mov r9, qword [rsp + 0x1b0]
jmp 0x407138
mov r8, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b0]
movzx r10, byte [r14 + r8]
and r10d, 0x20
lea r12d, [r15 + 1]
test r10d, r10d
je 0x407111
mov r9, qword [rsp + 0x1b0]
jmp 0x407138
mov ecx, 1
mov rdx, qword [rsp + 0x110]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx rdi, byte [r14 + r9]
and edi, 0x20
test edi, edi
je 0x40715d
mov r15, qword [rsp + 0x108]
jmp 0x40718f
mov r15, qword [rsp + 0x108]
mov r8, r15
sub r8d, r12d
mov r9, qword [rsp + 0x38]
cmp r8d, r9d
mov rcx, r9
cmovl ecx, r8d
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
add r13d, 4
mov r10, r15
sub r10d, r12d
mov r9, qword [rsp + 0x38]
sub r9d, r10d
mov r8, qword [rsp + 0x100]
mov qword [rsp + 0x38], r9
cmp r13d, r8d
jae 0x4071e2
mov r9, qword [rsp + 0x38]
test r9d, r9d
jl 0x4071e2
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x100], r8
mov qword [rsp + 0x108], r15
jmp 0x406eee
mov ecx, 0x30
mov r9d, 0x12
mov rsi, qword [rsp + 0x38]
lea r8d, [rsi + 0x12]
xor r10d, r10d
sub rsp, 0x10
mov dword [rsp], r10d
mov rdx, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x10]
call fcn.00409110
add rsp, 0x10
mov rcx, qword [rsp + 0x1b0]
movzx rax, byte [r14 + rcx]
and eax, 0x20
test eax, eax
je 0x407243
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x150]
jmp 0x40727d
mov edx, 0xfffffce0
mov r11, qword [rsp + 0x1b8]
lea ecx, [r11 + rdx]
mov rdx, qword [rsp + 0x98]
sub ecx, edx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x150]
mov rcx, qword [rsp + 0x68]
lea r10d, [rsi + rcx]
mov r12, qword [rsp + 0xe8]
cmp r12d, 0x2000
je 0x4072ad
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0x28], r10
jmp 0x408083
mov r13, qword [rsp + 0xd8]
cmp r13d, r10d
jg 0x4072d0
mov r13, qword [rsp + 0xd8]
mov qword [rsp + 0x28], r10
jmp 0x408083
mov ebx, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov r15, rdx
mov ecx, 0x20
mov r13, qword [rsp + 0xd8]
mov r11, r13
sub r11d, r10d
mov qword [rsp + 0x28], r10
mov r12d, 0x100
cmp r12d, r11d
mov r8, r11
cmovb r8d, r12d
mov r13, r11
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r13
cmp ecx, 0x100
jae 0x40733e
mov rcx, r13
mov r8, qword [rsp + 0x1b0]
jmp 0x4073af
mov r8, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b0]
movzx r9, byte [r14 + r8]
and r9d, 0x20
test r9d, r9d
je 0x407368
mov rcx, r13
jmp 0x407383
mov rcx, r12
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, r13
lea edx, [rcx + rbx]
cmp edx, 0xff
jbe 0x4073a5
mov rcx, rdx
mov r8, qword [rsp + 0x1b0]
mov r13, rcx
jmp 0x407346
add ecx, ebx
mov r8, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b0]
movzx rdx, byte [r14 + r8]
and edx, 0x20
test edx, edx
je 0x4073d9
mov r10, qword [rsp + 0x28]
mov r13, qword [rsp + 0xd8]
jmp 0x408083
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r10, qword [rsp + 0x28]
mov r13, qword [rsp + 0xd8]
jmp 0x408083
cmp r9d, 0xb
jbe 0x407417
mov rdi, qword [rsp + 0x198]
jmp 0x407576
mov edx, 0xc
mov r9, qword [rsp + 0x38]
sub edx, r9d
mov r10, rdx
and r10d, 7
test r10d, r10d
jne 0x40744b
movabs r11, 0x4030000000000000
vmovq xmm1, r11
mov rax, rdx
jmp 0x407487
mov edi, 0xfffffff4
mov r9, qword [rsp + 0x38]
lea eax, [r9 + rdi]
movabs rsi, 0x4030000000000000
vmovq xmm1, rsi
and edx, 7
mov ecx, 0xffffffff
add edx, ecx
add eax, 1
vmulsd xmm1, xmm1, qword [0x00408cb0]
test edx, edx
jne 0x40746b
neg eax
mov edx, 0xfffffffb
mov r9, qword [rsp + 0x38]
add edx, r9d
cmp edx, 7
jae 0x4074a7
mov rdx, qword [rsp + 0x70]
jmp 0x4074fd
mov r9d, 0xfffffff8
add eax, r9d
vmulsd xmm6, xmm1, qword [0x00408cc0]
vmulsd xmm6, xmm6, qword [0x00408cd0]
vmulsd xmm6, xmm6, qword [0x00408ce0]
vmulsd xmm6, xmm6, qword [0x00408cf0]
vmulsd xmm6, xmm6, qword [0x00408d00]
vmulsd xmm6, xmm6, qword [0x00408d10]
vmulsd xmm6, xmm6, qword [0x00408d20]
vmulsd xmm1, xmm6, qword [0x00408d30]
test eax, eax
jne 0x4074ad
mov rdx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x70]
mov r11, rdx
shl r11d, 0x1a
sar r11d, 0x1f
and r11d, 9
mov rdx, qword [rsp + 0x80]
lea edi, [rdx + r11]
movzx rdi, byte [r14 + rdi]
cmp edi, 0x2d
jne 0x407566
movabs rdi, 0x8000000000000000
vmovq xmm3, rdi
vxorpd xmm5, xmm7, xmm3
vsubsd xmm3, xmm5, xmm1
vaddsd xmm3, xmm1, xmm3
movabs rdi, 0x8000000000000000
vmovq xmm4, rdi
vxorpd xmm7, xmm3, xmm4
mov rdi, qword [rsp + 0x198]
jmp 0x407576
vaddsd xmm4, xmm7, xmm1
vsubsd xmm7, xmm4, xmm1
mov rdi, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x198]
mov r8d, dword [r14 + rdi + 0x6c]
test r8d, r8d
je 0x407615
xor r10d, r10d
mov r11, r8
sar r11d, 0x1f
mov rdi, r8
xor edi, r11d
sub edi, r11d
mov esi, 0xa
xor rdx, rdx
mov rax, rdi
div esi
imul esi, eax, 0xa
mov r11, rdi
sub r11d, esi
or r11d, 0x30
mov rcx, qword [rsp + 0x1b8]
lea esi, [rcx + r10]
mov ecx, 0xfffffcdf
add esi, ecx
mov byte [r14 + rsi], r11b
mov esi, 0xffffffff
add esi, r10d
cmp edi, 9
jbe 0x4075ec
mov rdi, rax
mov r10, rsi
jmp 0x40759f
test esi, esi
je 0x407615
mov r11, qword [rsp + 0x1b8]
mov r9, r11
sub r9d, 0x370
lea r10d, [r9 + r10 + 0x4f]
mov r11, qword [rsp + 0x70]
jmp 0x40763e
mov r9d, 0x30
mov r10, qword [rsp + 0x198]
mov byte [r14 + r10 + 0x4f], r9b
mov r10d, 0xfffffcdf
mov r11, qword [rsp + 0x1b8]
add r10d, r11d
mov r11, qword [rsp + 0x70]
mov r11, qword [rsp + 0x70]
lea esi, [r11 + 0xf]
mov r11d, 0xfffffffe
lea edi, [r10 + r11]
mov byte [r14 + rdi], sil
mov esi, 0x2b
test r8d, r8d
cmovl esi, dword [0x00408ca8]
mov edi, 0xffffffff
add edi, r10d
mov byte [r14 + rdi], sil
mov eax, 0xfffffce0
mov rdi, qword [rsp + 0x1b8]
lea r12d, [rdi + rax]
mov rdi, qword [rsp + 0x70]
mov rax, rdi
and eax, 0x20
mov rdx, qword [rsp + 0xe8]
mov rcx, rdx
and ecx, 8
mov r13, r12
movabs rdi, 0x7fffffffffffffff
vmovq xmm5, rdi
vandpd xmm0, xmm7, xmm5
movabs rdx, 0x41e0000000000000
vmovq xmm6, rdx
ucomisd xmm6, xmm0
seta dl
movzx edx, dl
test edx, edx
je 0x407715
cvttsd2si esi, xmm7
cmp esi, 1
jno 0x40771a
ucomisd xmm7, xmm7
jp 0x408bf6
movabs r9, 0xc1e0000000200000
movq xmm0, r9
ucomisd xmm7, xmm0
jbe 0x408bf8
xorpd xmm0, xmm0
ucomisd xmm0, xmm7
jb 0x408bfa
jmp 0x40771a
mov esi, 0x80000000
lea r9d, [rsi + 0xd40]
movzx r8, byte [r14 + r9]
or r8d, eax
mov r9d, r13d
mov byte [r14 + r9], r8b
lea edi, [r13 + 1]
mov rdx, rdi
sub edx, r12d
cmp edx, 1
je 0x40774b
mov r13, rdi
jmp 0x40779e
test ecx, ecx
jne 0x407790
mov rdx, qword [rsp + 0x38]
test edx, edx
jg 0x407790
vxorpd xmm1, xmm0, xmm0
vcvtsi2sd xmm3, xmm1, esi
vsubsd xmm1, xmm7, xmm3
vmulsd xmm1, xmm1, qword [0x00408d40]
vxorpd xmm2, xmm0, xmm0
ucomisd xmm1, xmm2
jp 0x407790
jne 0x407790
mov r13, rdi
jmp 0x40779e
mov edi, 0x2e
mov byte [r14 + r9 + 1], dil
add r13d, 2
vxorpd xmm0, xmm5, xmm5
vcvtsi2sd xmm1, xmm0, esi
vsubsd xmm7, xmm7, xmm1
vmulsd xmm7, xmm7, qword [0x00408d50]
vxorpd xmm0, xmm6, xmm6
ucomisd xmm7, xmm0
jp 0x40769d
jne 0x40769d
mov esi, 0x7ffffffd
lea edx, [r10 + r11]
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x100], r11
mov rcx, r12
sub ecx, edx
mov r11, qword [rsp + 0x68]
or r11d, 2
mov rdi, r11
mov qword [rsp + 0x68], r11
lea edx, [rcx + rdi]
mov qword [rsp + 0xf8], rcx
sub esi, edx
mov r9, qword [rsp + 0x38]
cmp esi, r9d
jl 0x408b8d
mov rax, qword [rsp + 0xe8]
and eax, 0x12000
mov r8, rax
mov qword [rsp + 0xe8], rax
test r8d, r8d
je 0x407857
mov rcx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xf0], rdx
jmp 0x407a36
mov r11, r12
xor r11d, dword [0x00408d60]
lea esi, [r11 + r13]
mov r9, qword [rsp + 0x38]
lea r11d, [r9 + 2]
mov r9, r13
sub r9d, r12d
mov r10, qword [rsp + 0x38]
cmp esi, r10d
mov rsi, r9
cmovl esi, r11d
mov rdi, qword [rsp + 0x38]
test edi, edi
cmovne r9d, esi
lea edi, [r9 + rdx]
mov r10, qword [rsp + 0xd8]
mov qword [rsp + 0xf0], rdx
cmp r10d, edi
jg 0x4078c8
mov rcx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rsi
jmp 0x407a36
mov ebx, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov qword [rsp + 0xe0], rdx
mov ecx, 0x20
mov r9, qword [rsp + 0xd8]
mov r10, r9
sub r10d, edi
mov r15d, 0x100
cmp r15d, r10d
mov r8, r10
cmovb r8d, r15d
mov qword [rsp + 0xa0], r10
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0xa0]
cmp ecx, 0x100
jae 0x40794a
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0xa0]
jmp 0x4079cf
mov r10, qword [rsp + 0x1b0]
mov r10, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r10]
and ecx, 0x20
test ecx, ecx
je 0x407977
mov rcx, qword [rsp + 0xa0]
jmp 0x40799c
mov rcx, r15
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa0]
lea r11d, [rcx + rbx]
cmp r11d, 0xff
jbe 0x4079c5
mov rcx, r11
mov r10, qword [rsp + 0x1b0]
mov qword [rsp + 0xa0], rcx
jmp 0x407952
add ecx, ebx
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rsi, byte [r14 + rax]
and esi, 0x20
test esi, esi
je 0x407a04
mov rcx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rsi
jmp 0x407a36
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rsi
mov rcx, qword [rsp + 0x1b0]
movzx rax, byte [r14 + rcx]
and eax, 0x20
test eax, eax
je 0x407a5b
mov rdi, qword [rsp + 0xe8]
jmp 0x407aa5
mov r11, qword [rsp + 0x70]
shl r11d, 0x1a
mov qword [rsp + 0x70], r11
sar r11d, 0x1f
mov qword [rsp + 0x70], r11
and r11d, 9
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0x70], r11
add edx, r11d
mov rcx, qword [rsp + 0x68]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rdi, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0xe8]
cmp edi, 0x10000
je 0x407ac6
mov rcx, qword [rsp + 0x1b0]
jmp 0x407c74
mov r11, r12
xor r11d, dword [0x00408d60]
lea esi, [r11 + r13]
mov r9, qword [rsp + 0x38]
lea r11d, [r9 + 2]
mov r9, r13
sub r9d, r12d
mov r10, qword [rsp + 0x38]
cmp esi, r10d
mov rsi, r9
cmovl esi, r11d
mov rdi, qword [rsp + 0x38]
test edi, edi
cmovne r9d, esi
mov r10, qword [rsp + 0xf0]
lea edi, [r9 + r10]
mov r8, qword [rsp + 0xd8]
cmp r8d, edi
jg 0x407b27
mov rcx, qword [rsp + 0x1b0]
jmp 0x407c74
mov ebx, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov qword [rsp + 0xe0], rdx
mov ecx, 0x30
mov rdx, qword [rsp + 0xd8]
mov rsi, rdx
sub esi, edi
mov r15d, 0x100
cmp r15d, esi
mov r8, rsi
cmovb r8d, r15d
mov qword [rsp + 0xa0], rsi
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0xa0]
cmp ecx, 0x100
jae 0x407ba8
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0xa0]
jmp 0x407c2d
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r9]
and ecx, 0x20
test ecx, ecx
je 0x407bd5
mov rcx, qword [rsp + 0xa0]
jmp 0x407bfa
mov rcx, r15
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa0]
lea r11d, [rcx + rbx]
cmp r11d, 0xff
jbe 0x407c23
mov rcx, r11
mov r9, qword [rsp + 0x1b0]
mov qword [rsp + 0xa0], rcx
jmp 0x407bb0
add ecx, ebx
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rsi, byte [r14 + rax]
and esi, 0x20
test esi, esi
je 0x407c52
mov rcx, qword [rsp + 0x1b0]
jmp 0x407c74
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0x1b0]
movzx rax, byte [r14 + rcx]
and eax, 0x20
test eax, eax
jne 0x407ca7
mov rcx, r13
sub ecx, r12d
mov rdx, r12
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r10, r12
xor r10d, dword [0x00408d60]
lea r11d, [r10 + r13]
mov r9, qword [rsp + 0x38]
lea r10d, [r9 + 2]
sub r13d, r12d
cmp r11d, r9d
mov r11, r13
cmovl r11d, r10d
test r9d, r9d
mov r15, r13
cmovne r15d, r11d
mov rsi, r15
sub esi, r13d
test esi, esi
jg 0x407cf8
mov rax, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0xd8]
jmp 0x407e4a
mov ebx, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rbx]
mov qword [rsp + 0xe0], rdx
mov ecx, 0x30
mov r13d, 0x100
cmp r13d, esi
mov r8, rsi
cmovb r8d, r13d
mov qword [rsp + 0xa0], rsi
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0xa0]
cmp ecx, 0x100
jae 0x407d74
mov rax, qword [rsp + 0x1b0]
mov rcx, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xd8]
jmp 0x407e01
mov r10, qword [rsp + 0x1b0]
mov r12, qword [rsp + 0xd8]
mov r10, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r10]
and ecx, 0x20
test ecx, ecx
je 0x407da9
mov rcx, qword [rsp + 0xa0]
jmp 0x407dce
mov rcx, r13
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa0]
lea r10d, [rcx + rbx]
cmp r10d, 0xff
jbe 0x407df7
mov rcx, r10
mov r10, qword [rsp + 0x1b0]
mov qword [rsp + 0xa0], rcx
jmp 0x407d84
add ecx, ebx
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx r11, byte [r14 + rax]
and r11d, 0x20
test r11d, r11d
je 0x407e28
mov rax, qword [rsp + 0x1b0]
jmp 0x407e4a
mov rdx, qword [rsp + 0xe0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rax, qword [rsp + 0x1b0]
mov rax, qword [rsp + 0x1b0]
movzx rdi, byte [r14 + rax]
and edi, 0x20
test edi, edi
je 0x407e6f
mov r9, qword [rsp + 0xf0]
jmp 0x407ea5
mov r10, qword [rsp + 0x98]
mov r11, qword [rsp + 0x100]
lea edx, [r10 + r11]
mov rcx, qword [rsp + 0xf8]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r9, qword [rsp + 0xf0]
lea r10d, [r15 + r9]
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x28], r10
cmp ecx, 0x2000
je 0x407ee7
mov r10, qword [rsp + 0x28]
mov r13, r12
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd8], r12
jmp 0x408083
mov r10, qword [rsp + 0x28]
cmp r12d, r10d
jg 0x407f1a
mov r10, qword [rsp + 0x28]
mov r13, r12
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd8], r12
jmp 0x408083
mov r15d, 0xffffff00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r15]
mov r13, rdx
mov ecx, 0x20
mov r10, qword [rsp + 0x28]
mov r11, r12
sub r11d, r10d
mov ebx, 0x100
cmp ebx, r11d
mov r8, r11
cmovb r8d, ebx
mov qword [rsp + 0xa0], r11
mov rdx, r13
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0xa0]
cmp ecx, 0x100
jae 0x407f8f
mov rcx, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0x1b0]
jmp 0x408011
mov rdx, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x1b0]
movzx r10, byte [r14 + rdx]
and r10d, 0x20
test r10d, r10d
je 0x407fbe
mov rcx, qword [rsp + 0xa0]
jmp 0x407fde
mov rcx, rbx
mov rdx, r13
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa0]
lea edx, [rcx + r15]
cmp edx, 0xff
jbe 0x408006
mov rcx, rdx
mov rdx, qword [rsp + 0x1b0]
mov qword [rsp + 0xa0], rcx
jmp 0x407f97
add ecx, r15d
mov rdi, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1b0]
movzx rdx, byte [r14 + rdi]
and edx, 0x20
test edx, edx
je 0x40804e
mov r10, qword [rsp + 0x28]
mov r13, r12
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd8], r12
jmp 0x408083
mov rdx, r13
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r10, qword [rsp + 0x28]
mov r13, r12
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rsi
mov qword [rsp + 0xd8], r12
cmp r13d, r10d
mov r10, qword [rsp + 0x28]
mov r13, qword [rsp + 0xd8]
cmovge r10d, r13d
mov qword [rsp + 0x28], r10
test r10d, r10d
jl 0x408b8d
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
jmp 0x403e25
mov r11d, 0xfffffcc8
mov r8, qword [rsp + 0x1b8]
add r11d, r8d
xor ecx, ecx
mov r12d, 0x400
mov qword [rsp + 0x90], r12
mov rdx, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xa8], rsi
sub r11d, edx
mov r9, qword [rsp + 0x38]
cmp r11d, r9d
mov rdi, r9
cmovge edi, r11d
mov qword [rsp + 0xc0], r11
mov rax, rcx
xor eax, 0x7fffffff
cmp edi, eax
jg 0x408b8d
lea r13d, [rcx + rdi]
mov qword [rsp + 0x98], rdi
mov r15, rcx
mov rcx, qword [rsp + 0xd8]
cmp r13d, ecx
mov r8, qword [rsp + 0xd8]
mov r10, r8
cmovge r10d, r13d
mov r9, qword [rsp + 0x1a0]
mov qword [rsp + 0x28], r10
cmp r10d, r9d
jg 0x408b8d
mov rcx, qword [rsp + 0xa8]
mov r11, rcx
and r11d, 0x12000
test r11d, r11d
je 0x408187
mov r8, qword [rsp + 0x1b0]
jmp 0x4082f7
mov r8, qword [rsp + 0xd8]
cmp r13d, r8d
jl 0x4081a5
mov r8, qword [rsp + 0x1b0]
jmp 0x4082f7
mov eax, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rax]
mov qword [rsp + 0xb8], rdx
mov ecx, 0x20
mov r10, qword [rsp + 0x28]
mov r9, r10
sub r9d, r13d
mov ebx, 0x100
cmp ebx, r9d
mov r8, r9
cmovb r8d, ebx
mov qword [rsp + 0x88], r9
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x88]
cmp ecx, 0x100
jae 0x408223
mov rcx, qword [rsp + 0x88]
mov r9, qword [rsp + 0x1b0]
jmp 0x4082b0
mov r12d, 0xffffff00
mov rsi, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b0]
movzx r11, byte [r14 + rsi]
and r11d, 0x20
test r11d, r11d
je 0x408258
mov rcx, qword [rsp + 0x88]
jmp 0x40827d
mov rcx, rbx
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x88]
lea edx, [rcx + r12]
cmp edx, 0xff
jbe 0x4082a5
mov rcx, rdx
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0x88], rcx
jmp 0x408231
add ecx, r12d
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx rdi, byte [r14 + r9]
and edi, 0x20
test edi, edi
je 0x4082d5
mov r8, qword [rsp + 0x1b0]
jmp 0x4082f7
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r8, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b0]
movzx r11, byte [r14 + r8]
and r11d, 0x20
test r11d, r11d
je 0x40831e
mov rcx, qword [rsp + 0xa8]
jmp 0x408343
mov rcx, r15
mov rdx, qword [rsp + 0x90]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa8]
mov rdx, rcx
and edx, 0x12000
cmp edx, 0x10000
je 0x408382
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xa0], rsi
jmp 0x40851d
mov rsi, qword [rsp + 0xd8]
cmp r13d, esi
jl 0x4083b5
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xa0], rsi
jmp 0x40851d
mov eax, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + rax]
mov r15, rdx
mov ecx, 0x30
mov r10, qword [rsp + 0x28]
mov rdx, r10
sub edx, r13d
mov ebx, 0x100
cmp ebx, edx
mov r8, rdx
cmovb r8d, ebx
mov qword [rsp + 0x90], rdx
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x90]
cmp ecx, 0x100
jae 0x408438
mov rcx, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xa0], rsi
jmp 0x4084cf
mov r12d, 0xffffff00
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx rdi, byte [r14 + r9]
and edi, 0x20
test edi, edi
je 0x40846b
mov rcx, qword [rsp + 0x90]
jmp 0x40848b
mov rcx, rbx
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0x90]
lea r9d, [rcx + r12]
cmp r9d, 0xff
jbe 0x4084b4
mov rcx, r9
mov r9, qword [rsp + 0x1b0]
mov qword [rsp + 0x90], rcx
jmp 0x408446
add ecx, r12d
mov rdx, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0xc8]
mov qword [rsp + 0xa0], rsi
mov rdx, qword [rsp + 0x1b0]
movzx r8, byte [r14 + rdx]
and r8d, 0x20
test r8d, r8d
je 0x4084fb
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
jmp 0x40851d
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov r9, qword [rsp + 0xc0]
mov r10, qword [rsp + 0x38]
cmp r9d, r10d
jl 0x408543
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x1b0]
mov qword [rsp + 0xc0], r9
jmp 0x4086b0
mov r10d, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r10]
mov rbx, rdx
mov ecx, 0x30
mov rdi, qword [rsp + 0x98]
sub edi, r9d
mov qword [rsp + 0xc0], r9
mov r12d, 0x100
cmp r12d, edi
mov r8, rdi
cmovb r8d, r12d
mov qword [rsp + 0x98], rdi
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, qword [rsp + 0x98]
cmp ecx, 0x100
jae 0x4085b9
mov r9, qword [rsp + 0x1b0]
jmp 0x408656
mov r15d, 0xffffff00
mov rsi, qword [rsp + 0x1b0]
mov rsi, qword [rsp + 0x1b0]
movzx r9, byte [r14 + rsi]
and r9d, 0x20
test r9d, r9d
je 0x4085ee
mov rdi, qword [rsp + 0x98]
jmp 0x40860e
mov rcx, r12
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rdi, qword [rsp + 0x98]
mov rdi, qword [rsp + 0x98]
lea ecx, [rdi + r15]
cmp ecx, 0xff
jbe 0x40863b
mov qword [rsp + 0x98], rcx
mov rsi, qword [rsp + 0x1b0]
jmp 0x4085c7
mov rcx, qword [rsp + 0x98]
add ecx, r15d
mov qword [rsp + 0x98], rcx
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r9]
and ecx, 0x20
test ecx, ecx
je 0x408683
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x1b0]
jmp 0x4086b0
mov rcx, qword [rsp + 0x98]
mov rdx, rbx
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0x1b0]
mov r8, qword [rsp + 0x1b0]
movzx rcx, byte [r14 + r8]
and ecx, 0x20
test ecx, ecx
je 0x4086d5
mov rcx, qword [rsp + 0xa8]
jmp 0x4086f7
mov rcx, qword [rsp + 0xc0]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xa8]
and ecx, 0x12000
mov qword [rsp + 0xa8], rcx
cmp ecx, 0x2000
je 0x408740
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0xc8], rsi
jmp 0x403e25
mov r8, qword [rsp + 0xd8]
cmp r13d, r8d
jl 0x408778
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0xc8], rsi
jmp 0x403e25
mov r9d, 0xfffffd00
mov r11, qword [rsp + 0x1b8]
lea edx, [r11 + r9]
mov r15, rdx
mov ecx, 0x20
mov r10, qword [rsp + 0x28]
mov rdx, r10
sub edx, r13d
mov ebx, 0x100
cmp ebx, edx
mov r8, rdx
cmovb r8d, ebx
mov r12, rdx
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.004099d0
mov rcx, r12
cmp ecx, 0x100
jae 0x4087dd
mov rcx, r12
mov rdx, qword [rsp + 0x1b0]
jmp 0x408856
mov r13d, 0xffffff00
mov r9, qword [rsp + 0x1b0]
mov r9, qword [rsp + 0x1b0]
movzx r11, byte [r14 + r9]
and r11d, 0x20
test r11d, r11d
je 0x40880d
mov rcx, r12
jmp 0x408828
mov rcx, rbx
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rcx, r12
lea edx, [rcx + r13]
cmp edx, 0xff
jbe 0x40884b
mov rcx, rdx
mov r9, qword [rsp + 0x1b0]
mov r12, rcx
jmp 0x4087eb
add ecx, r13d
mov rdx, qword [rsp + 0x1b0]
mov rdx, qword [rsp + 0x1b0]
movzx r9, byte [r14 + rdx]
and r9d, 0x20
test r9d, r9d
je 0x408897
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0xc8], rsi
jmp 0x403e25
mov rdx, r15
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 8]
call fcn.00402fa0
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rsi
mov rsi, qword [rsp + 0xa0]
mov qword [rsp + 0xc8], rsi
jmp 0x403e25
mov rbx, qword [rsp + 0x40]
mov r9, qword [rsp + 0x1a0]
mov r11d, ebx
movsx r11, byte [r14 + r11 + 1]
mov esi, 0xffffffd0
add esi, r11d
mov edx, 0xffffffff
add ebx, 1
mov qword [rsp + 0x40], rbx
cmp esi, 0xa
jae 0x408b8d
mov qword [rsp + 0x1a0], r9
jmp 0x404232
mov qword [rsp + 0x28], r10
lea eax, [r10 + rdi]
mov rcx, qword [rsp + 8]
test ecx, ecx
je 0x40893b
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
jmp 0x408ba9
mov r13, qword [rsp + 0xc8]
test r13d, r13d
jne 0x40895f
xor eax, eax
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
jmp 0x408ba9
mov r8, qword [rsp + 0x20]
mov r12d, r8d
mov ecx, dword [r14 + r12 + 4]
test ecx, ecx
jne 0x40897e
mov ebx, 1
jmp 0x408b04
mov ebx, 8
mov rax, qword [rsp + 0x18]
lea edx, [rax + 8]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 8]
test ecx, ecx
jne 0x4089b4
mov ebx, 2
jmp 0x408b04
mov rdi, qword [rsp + 0x18]
lea edx, [rdi + 0x10]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0xc]
test ecx, ecx
jne 0x4089e5
mov ebx, 3
jmp 0x408b04
mov rsi, qword [rsp + 0x18]
lea edx, [rsi + 0x18]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x10]
test ecx, ecx
jne 0x408a16
mov ebx, 4
jmp 0x408b04
mov r11, qword [rsp + 0x18]
lea edx, [r11 + 0x20]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x14]
test ecx, ecx
jne 0x408a48
mov ebx, 5
jmp 0x408b04
mov r10, qword [rsp + 0x18]
lea edx, [r10 + 0x28]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x18]
test ecx, ecx
jne 0x408a7a
mov ebx, 6
jmp 0x408b04
mov r9, qword [rsp + 0x18]
lea edx, [r9 + 0x30]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x1c]
test ecx, ecx
jne 0x408aac
mov ebx, 7
jmp 0x408b04
mov r8, qword [rsp + 0x18]
lea edx, [r8 + 0x38]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x20]
test ecx, ecx
je 0x408b04
mov rdx, qword [rsp + 0x18]
lea r11d, [rdx + 0x40]
mov rdx, r11
mov rsi, qword [rsp]
mov rdi, qword [rsp]
mov r8, qword [rsp + 0x10]
call fcn.00408d70
mov ecx, dword [r14 + r12 + 0x24]
test ecx, ecx
jne 0x408b5d
mov ebx, 9
shl ebx, 2
mov r8, qword [rsp + 0x20]
mov r8, qword [rsp + 0x20]
lea edx, [r8 + rbx]
mov edx, dword [r14 + rdx]
test edx, edx
jne 0x408b4d
add ebx, 4
cmp ebx, 0x28
je 0x408b37
mov r8, qword [rsp + 0x20]
jmp 0x408b0c
mov eax, 1
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
jmp 0x408ba9
mov dword [r14 + 0xe44], 0x1c
jmp 0x408b98
mov rsi, qword [rsp + 0x18]
lea edx, [rsi + 0x48]
mov r8, qword [rsp + 0x10]
mov rsi, qword [rsp]
mov rdi, qword [rsp]
call fcn.00408d70
mov eax, 1
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
jmp 0x408ba9
mov dword [r14 + 0xe44], 0x3d
mov eax, 0xffffffff
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
mov rbx, qword [rsp]
mov r11, qword [rsp + 0x1b8]
mov dword [rbx + 0x110], r11d
mov rbx, qword [rsp + 0x1c0]
mov r12, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x1d0]
mov r14, qword [rsp + 0x1d8]
mov r15, qword [rsp + 0x1e0]
add rsp, 0x1f0
mov rsp, rbp
pop rbp
ret
ud2
ud2
ud2
ud2
ud2
ud2