Function at 0x405990
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov r11, rsp
sub rsp, 0x3f8
mov qword [rsp + 0xd8], 0xfffffffffffffffe
mov qword [r11 + 0x20], rbx
mov qword [r11 - 8], rbp
mov qword [r11 - 0x10], rsi
mov qword [r11 - 0x18], rdi
mov qword [r11 - 0x20], r12
mov qword [r11 - 0x28], r13
mov qword [r11 - 0x30], r14
mov qword [r11 - 0x38], r15
mov rax, qword [0x0041c040]
xor rax, rsp
mov qword [rsp + 0x3b0], rax
mov r14, r8
mov rbp, rdx
mov qword [rsp + 0xc8], rdx
mov r12, rcx
mov qword [r11 - 0x2f0], rcx
mov qword [r11 - 0x2c0], r8
xor r13d, r13d
mov dword [r11 - 0x364], r13d
mov byte [rsp + 0x20], r13b
lea r8, [rsp + 0x20]
mov edx, 0x5dc
call fcn.0040a400
mov dword [rsp + 0x94], 1
mov rcx, rbp
call fcn.00401d40
mov qword [rsp + 0xd0], rax
mov rdx, rbp
mov rcx, rax
call fcn.00402820
mov rbx, rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x100], 7
mov qword [rsp + 0xf8], r13
mov word [rsp + 0xe8], r13w
lea r9, [r13 - 1]
xor r8d, r8d
mov rdx, r14
lea rcx, [rsp + 0xe0]
call fcn.0040a1f0
lea r8, [rsp + 0xe0]
mov rdx, rbp
mov rcx, rbx
call fcn.00403340
mov r15, rax
mov rdx, rbp
mov rcx, rax
call fcn.004042b0
mov rdx, rbp
mov rcx, r15
call fcn.00404df0
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], r13
mov word [rsp + 0x20], 0x51
lea rax, [rsp + 0x28]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x148], r13
movaps xmm0, xmmword [rsp + 0x140]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
lea r8d, [r13 + 1]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rdi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405b18
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
cmp rdi, rdx
ja 0x405b22
cmp rdi, rbx
jae 0x405b31
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x6f
test rbx, rbx
je 0x405b6e
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x405b6e
mov word [rdx], 0x6f
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x405c1c
mov rdi, rdx
cmp rbx, rdx
jbe 0x405b85
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x405bb6
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x405bb6
cmp rbx, rdx
jbe 0x405bae
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x405bb9
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405bff
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x405c0d
cmp rax, rbx
jae 0x405c1c
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x73
test rbx, rbx
je 0x405c59
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x405c59
mov word [rdx], 0x73
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x405d07
mov rdi, rdx
cmp rbx, rdx
jbe 0x405c70
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x405ca1
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x405ca1
cmp rbx, rdx
jbe 0x405c99
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x405ca4
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405cea
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x405cf8
cmp rax, rbx
jae 0x405d07
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x4c
test rbx, rbx
je 0x405d44
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x405d44
mov word [rdx], 0x4c
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x405df2
mov rdi, rdx
cmp rbx, rdx
jbe 0x405d5b
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x405d8c
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x405d8c
cmp rbx, rdx
jbe 0x405d84
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x405d8f
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405dd5
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x405de3
cmp rax, rbx
jae 0x405df2
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x6d
test rbx, rbx
je 0x405e2f
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x405e2f
mov word [rdx], 0x6d
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x405edd
mov rdi, rdx
cmp rbx, rdx
jbe 0x405e46
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x405e77
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x405e77
cmp rbx, rdx
jbe 0x405e6f
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x405e7a
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405ec0
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x405ece
cmp rax, rbx
jae 0x405edd
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x68
test rbx, rbx
je 0x405f1a
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x405f1a
mov word [rdx], 0x68
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x405fc8
mov rdi, rdx
cmp rbx, rdx
jbe 0x405f31
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x405f62
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x405f62
cmp rbx, rdx
jbe 0x405f5a
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x405f65
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x405fab
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x405fb9
cmp rax, rbx
jae 0x405fc8
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x65
test rbx, rbx
je 0x406005
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x406005
mov word [rdx], 0x65
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x4060b3
mov rdi, rdx
cmp rbx, rdx
jbe 0x40601c
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x40604d
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x40604d
cmp rbx, rdx
jbe 0x406045
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x406050
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x406096
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x4060a4
cmp rax, rbx
jae 0x4060b3
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x4c
test rbx, rbx
je 0x4060f0
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x4060f0
mov word [rdx], 0x4c
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x40619e
mov rdi, rdx
cmp rbx, rdx
jbe 0x406107
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x406138
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x406138
cmp rbx, rdx
jbe 0x406130
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x40613b
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x406181
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x40618f
cmp rax, rbx
jae 0x40619e
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x6b
test rbx, rbx
je 0x4061db
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x4061db
mov word [rdx], 0x6b
add rdx, 2
mov qword [rsp + 0x38], rdx
mov rbx, qword [rsp + 0x30]
jmp 0x406289
mov rdi, rdx
cmp rbx, rdx
jbe 0x4061f2
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x406223
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x406223
cmp rbx, rdx
jbe 0x40621b
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x406226
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov rbx, qword [rsp + 0x30]
mov rsi, rbx
mov rdx, qword [rsp + 0x38]
cmp rbx, rdx
jbe 0x40626c
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x40627a
cmp rax, rbx
jae 0x406289
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov word [rsp + 0x20], 0x66
test rbx, rbx
je 0x4062c1
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x40]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x4062c1
mov word [rdx], 0x66
lea rax, [rdx + 2]
mov qword [rsp + 0x38], rax
jmp 0x406365
mov rdi, rdx
cmp rbx, rdx
jbe 0x4062d8
call fcn.0040bf80
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea rax, [rsp + 0x28]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x406309
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x406309
cmp rbx, rdx
jbe 0x406301
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x40630c
mov rdi, r13
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x28]
call fcn.0040a640
mov r11, qword [rsp + 0x30]
mov rbx, r11
mov rax, qword [rsp + 0x38]
cmp r11, rax
jbe 0x406352
call fcn.0040bf80
mov rax, qword [rsp + 0x38]
mov r11, qword [rsp + 0x30]
lea rcx, [rbx + rdi*2]
cmp rcx, rax
ja 0x406360
cmp rcx, r11
jae 0x406365
call fcn.0040bf80
mov word [rsp + 0x20], 0x68
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.00409bd0
mov word [rsp + 0x20], 0x57
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.00409bd0
mov word [rsp + 0x20], 0x6f
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.00409bd0
mov word [rsp + 0x20], 0x69
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.00409bd0
mov word [rsp + 0x20], 0x75
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x28]
call fcn.00409bd0
mov word [rsp + 0x140], 0x75
mov word [rsp + 0x142], 0x67
mov word [rsp + 0x144], 0x66
mov word [rsp + 0x146], 0x65
mov word [rsp + 0x148], 0x54
mov word [rsp + 0x14a], 0x4f
mov word [rsp + 0x14c], 0x50
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x50]
call fcn.00409a40
mov r9d, 7
lea r8, [rsp + 0x140]
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.00401270
nop
xor esi, esi
mov dword [rsp + 0x90], esi
mov qword [rsp + 0xb8], 0xf
mov qword [rsp + 0xb0], rsi
mov byte [rsp + 0xa0], sil
lea r9, [rsi - 1]
xor r8d, r8d
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x98]
call fcn.00409ed0
lea rdx, [rsp + 0x98]
mov rcx, rbp
call fcn.00401b00
mov r13, rax
mov ebp, esi
lea r9, [rsp + 0x90]
mov r8d, 0x258
lea rdx, [rsp + 0x150]
mov rcx, r15
call r13
test eax, eax
je 0x40653e
mov eax, dword [rsp + 0x90]
test eax, eax
je 0x40653e
mov edi, esi
test eax, eax
je 0x40651e
lea rbx, [rsp + 0x150]
nop
nop
mov esi, ebp
mov rcx, qword [r12 + 8]
test rcx, rcx
je 0x4064f9
mov rax, qword [r12 + 0x10]
sub rax, rcx
cmp rsi, rax
jb 0x4064fe
call fcn.0040bf80
mov rcx, qword [r12 + 8]
movzx eax, byte [rbx]
mov byte [rsi + rcx], al
add edi, 1
add rbx, 1
add ebp, 1
cmp edi, dword [rsp + 0x90]
jb 0x4064e0
xor esi, esi
lea r9, [rsp + 0x90]
mov r8d, 0x258
lea rdx, [rsp + 0x150]
mov rcx, r15
call r13
test eax, eax
jne 0x4064c1
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rsi
mov word [rsp + 0x20], 0x4f
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rsi
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.0040a640
mov rbx, qword [rsp + 0x78]
mov rdi, rbx
mov rdx, qword [rsp + 0x80]
cmp rbx, rdx
jbe 0x4065b5
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
cmp rdi, rdx
ja 0x4065bf
cmp rdi, rbx
jae 0x4065d1
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
mov word [rsp + 0x20], 0x68
test rbx, rbx
je 0x406614
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x88]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x406614
mov word [rdx], 0x68
add rdx, 2
mov qword [rsp + 0x80], rdx
mov rbx, qword [rsp + 0x78]
jmp 0x4066d4
mov rdi, rdx
cmp rbx, rdx
jbe 0x40662e
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x40665f
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x40665f
cmp rbx, rdx
jbe 0x406657
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x406662
mov rdi, rsi
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.0040a640
mov rbx, qword [rsp + 0x78]
mov rsi, rbx
mov rdx, qword [rsp + 0x80]
cmp rbx, rdx
jbe 0x4066ae
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
lea rax, [rsi + rdi*2]
cmp rax, rdx
ja 0x4066bc
cmp rax, rbx
jae 0x4066d2
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
xor esi, esi
jmp 0x4066d4
xor esi, esi
mov word [rsp + 0x20], 0x65
test rbx, rbx
je 0x406712
mov rcx, rdx
sub rcx, rbx
sar rcx, 1
mov rax, qword [rsp + 0x88]
sub rax, rbx
sar rax, 1
cmp rcx, rax
jae 0x406712
mov word [rdx], 0x65
lea rax, [rdx + 2]
mov qword [rsp + 0x80], rax
jmp 0x4067bf
mov rdi, rdx
cmp rbx, rdx
jbe 0x40672c
call fcn.0040bf80
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdi
test rbx, rbx
je 0x40675d
mov rax, rdx
sub rax, rbx
sar rax, 1
je 0x40675d
cmp rbx, rdx
jbe 0x406755
call fcn.0040bf80
sub rdi, rbx
sar rdi, 1
jmp 0x406760
mov rdi, rsi
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
lea r9, [rsp + 0x20]
mov r8d, 1
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
call fcn.0040a640
mov r11, qword [rsp + 0x78]
mov rbx, r11
mov rax, qword [rsp + 0x80]
cmp r11, rax
jbe 0x4067ac
call fcn.0040bf80
mov rax, qword [rsp + 0x80]
mov r11, qword [rsp + 0x78]
lea rcx, [rbx + rdi*2]
cmp rcx, rax
ja 0x4067ba
cmp rcx, r11
jae 0x4067bf
call fcn.0040bf80
mov word [rsp + 0x20], 0x59
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x75
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x77
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x68
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x42
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x63
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x66
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x74
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x68
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x5a
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x7a
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x65
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x75
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x6d
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x20], 0x68
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x70]
call fcn.00409bd0
mov word [rsp + 0x140], 0x53
mov word [rsp + 0x142], 0x7a
mov word [rsp + 0x144], 0x72
mov word [rsp + 0x146], 0x72
mov word [rsp + 0x148], 0x42
mov word [rsp + 0x14a], 0x64
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call fcn.00409a40
mov r9d, 6
lea r8, [rsp + 0x140]
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.00401270
nop
mov r9, 0xffffffffffffffff
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x110]
call fcn.00409ed0
nop
cmp qword [rsp + 0xb8], 0x10
jb 0x4069a6
mov rcx, qword [rsp + 0xa0]
call fcn.0040bb10
mov qword [rsp + 0xb8], 0xf
mov qword [rsp + 0xb0], rsi
mov byte [rsp + 0xa0], 0
mov r9, 0xffffffffffffffff
xor r8d, r8d
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x98]
call fcn.00409ed0
lea rdx, [rsp + 0x98]
mov rcx, qword [rsp + 0xc8]
call fcn.00401b00
mov rbx, rax
mov rcx, r15
call rbx
mov rcx, qword [rsp + 0xc0]
call rbx
mov rcx, qword [rsp + 0xd0]
call rbx
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x406a22
call fcn.0040bb10
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rsi
cmp qword [rsp + 0x130], 0x10
jb 0x406a4f
mov rcx, qword [rsp + 0x118]
call fcn.0040bb10
mov qword [rsp + 0x130], 0xf
mov qword [rsp + 0x128], rsi
mov byte [rsp + 0x118], 0
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x406a7a
call fcn.0040bb10
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rsi
mov qword [rsp + 0x40], rsi
cmp qword [r14 + 0x20], 8
jb 0x406a99
mov rcx, qword [r14 + 8]
call fcn.0040bb10
mov qword [r14 + 0x20], 7
mov qword [r14 + 0x18], rsi
mov word [r14 + 8], 0
mov rax, r12
mov rcx, qword [rsp + 0x3b0]
xor rcx, rsp
call fcn.0040b8c0
mov rbx, qword [rsp + 0x418]
mov rbp, qword [rsp + 0x3f0]
mov rsi, qword [rsp + 0x3e8]
mov rdi, qword [rsp + 0x3e0]
mov r12, qword [rsp + 0x3d8]
mov r13, qword [rsp + 0x3d0]
mov r14, qword [rsp + 0x3c8]
mov r15, qword [rsp + 0x3c0]
add rsp, 0x3f8
ret