Function at 0x407030
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x208
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1f0], xmm7
mov rax, qword [rdx]
mov rbp, rcx
mov r13, rdx
mov rcx, rax
xor edx, edx
add rcx, qword [rax + 0x10]
je 0x40709a
mov r9d, dword [rax + 4]
test r9d, r9d
je 0x40709a
lea r8, [rcx + 1]
xor eax, eax
cmp byte [rcx], 0
jne 0x40708f
jmp 0x40709a
add r8, 1
cmp byte [r8 - 1], 0
je 0x4082c0
add eax, 1
cmp r9d, eax
jne 0x407080
mov edx, r9d
mov rdi, qword [0x0049eed8]
mov qword [rsp + 0x40], rdi
call rdi
lea rcx, [0x004255cd]
mov edx, 1
mov qword [rsp + 0x70], rax
call rdi
mov rdx, qword [r13]
mov qword [rsp + 0x78], rax
mov eax, dword [rdx + 4]
sub eax, 1
cdqe
add rax, rdx
add rax, qword [rdx + 0x10]
cmp byte [rax], 0xa
jne 0x408093
lea rax, [rbp + 0xe0]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x170]
lea rbx, [rbp + 0x10]
mov qword [rsp + 0x48], rax
lea r13, [rsp + 0x88]
lea r15, [rsp + 0x1a0]
lea r14, [rsp + 0x180]
lea r12, [rsp + 0x1c0]
nop word cs:[rax + rax]
mov rdx, qword [rbx + 8]
mov qword [rsp + 0x80], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x407430
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x1c0], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x407420
mov rdx, qword [rsp + 0x80]
mov qword [rsp + 0x1a0], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x407410
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x180], rdx
mov eax, dword [rdx]
add eax, 1
cmp eax, 1
ja 0x407400
mov qword [rsp + 0x20], r12
mov r9, r15
mov r8, r14
mov rdx, rbp
mov rcx, r13
call fcn.00405c60
mov rcx, qword [rsp + 0x180]
mov eax, dword [rcx]
test eax, eax
je 0x407360
cmp eax, 0xffffffff
je 0x4071dd
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x180]
je 0x407360
mov rcx, qword [rsp + 0x1a0]
mov eax, dword [rcx]
test eax, eax
je 0x407383
cmp eax, 0xffffffff
je 0x407206
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1a0]
je 0x407383
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x4073a6
cmp eax, 0xffffffff
je 0x40722f
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4073a6
mov rcx, qword [rsp + 0x88]
mov r9d, dword [rcx + 4]
test r9d, r9d
je case.default.0x407255
cmp dword [rbx], 0xc
ja case.default.0x407255
mov eax, dword [rbx]
lea rdx, [0x0042564c]
movsxd rax, dword [rdx + rax*4]
add rax, rdx
jmp rax
xor edx, edx
mov rcx, r13
call qword [0x0049f028]
mov rax, qword [rbp + 0x138]
movss dword [rbp + 0xec], xmm0
mov rdx, r13
mov rcx, qword [rax + 0xe8]
call qword [0x0049f570]
nop word [rax + rax]
mov rcx, qword [rsp + 0x88]
mov eax, dword [rcx]
test eax, eax
je 0x4073e0
cmp eax, 0xffffffff
je 0x4072b9
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x88]
je 0x4073e0
mov rcx, qword [rsp + 0x80]
mov eax, dword [rcx]
test eax, eax
je 0x4073c0
cmp eax, 0xffffffff
je 0x4072e2
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x80]
je 0x4073c0
add rbx, 0x10
cmp rbx, qword [rsp + 0x38]
jne 0x407130
mov rcx, qword [rsp + 0x78]
mov eax, dword [rcx]
test eax, eax
je 0x407440
cmp eax, 0xffffffff
je 0x407314
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x78]
je 0x407440
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx]
test eax, eax
je 0x407460
cmp eax, 0xffffffff
je 0x407337
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x70]
je 0x407460
movaps xmm6, xmmword [rsp + 0x1e0]
movaps xmm7, xmmword [rsp + 0x1f0]
add rsp, 0x208
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
mov rcx, qword [rsp + 0x1a0]
mov eax, dword [rcx]
test eax, eax
jne 0x4071ef
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
jne 0x407218
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x40722f
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4072e2
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4072b9
lock add dword [rdx], 1
jmp 0x40719e
lock add dword [rdx], 1
jmp 0x407183
lock add dword [rdx], 1
jmp 0x407165
lock add dword [rdx], 1
jmp 0x40714a
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx]
test eax, eax
jne 0x407323
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407337
mov edx, 1
mov rax, qword [rsp + 0x40]
lea rcx, [0x00425644]
call rax
mov qword [rsp + 0x1c0], rax
xor r9d, r9d
mov r8, r12
mov rdx, r13
mov dword [rsp + 0x20], 1
mov rcx, r15
call qword [0x0049f008]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x408360
cmp eax, 0xffffffff
je 0x4074de
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x408360
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
mov rsi, qword [0x0049f018]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x10]
mov rdx, r14
call rsi
mov dword [rbp + 0x114], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x18]
mov rdx, r14
call rsi
mov byte [rbp + 0x118], al
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x20]
xor edx, edx
call rsi
test eax, eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
setne byte [rbp + 0x119]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x28]
xor edx, edx
call rsi
mov dword [rbp + 0x11c], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x30]
xor edx, edx
call rsi
mov dword [rbp + 0x120], eax
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov rcx, r12
mov r8d, 2
mov rsi, qword [0x0049f000]
mov rdi, qword [rax + 0x250]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x10]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f570]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x408595
cmp eax, 0xffffffff
je 0x4075fb
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x408595
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov r8d, 2
mov rcx, r12
mov rdi, qword [rax + 0x290]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x18]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f510]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x408630
cmp eax, 0xffffffff
je 0x407660
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x408630
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x11c]
mov rsi, qword [0x0049f518]
mov rcx, qword [rax + 0x238]
call rsi
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x120]
mov rcx, qword [rax + 0x240]
call rsi
jmp 0x407fb3
mov edx, 1
mov rax, qword [rsp + 0x40]
lea rcx, [0x00425644]
call rax
mov qword [rsp + 0x1c0], rax
xor r9d, r9d
mov r8, r12
mov rdx, r13
mov dword [rsp + 0x20], 1
mov rcx, r15
call qword [0x0049f008]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x408380
cmp eax, 0xffffffff
je 0x4076fe
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x408380
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
mov rsi, qword [0x0049f018]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x10]
mov rdx, r14
call rsi
mov dword [rbp + 0x104], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x18]
mov rdx, r14
call rsi
mov byte [rbp + 0x108], al
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x20]
xor edx, edx
call rsi
test eax, eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
setne byte [rbp + 0x109]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x28]
xor edx, edx
call rsi
mov dword [rbp + 0x10c], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x30]
xor edx, edx
call rsi
mov dword [rbp + 0x110], eax
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov rcx, r12
mov r8d, 2
mov rsi, qword [0x0049f000]
mov rdi, qword [rax + 0x278]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x10]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f570]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x4085d0
cmp eax, 0xffffffff
je 0x40781b
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4085d0
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov r8d, 2
mov rcx, r12
mov rdi, qword [rax + 0x280]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x18]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f510]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x4085b0
cmp eax, 0xffffffff
je 0x407880
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4085b0
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x10c]
mov rsi, qword [0x0049f518]
mov rcx, qword [rax + 0x260]
call rsi
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x110]
mov rcx, qword [rax + 0x258]
call rsi
jmp 0x407fb3
lea rax, [rsp + 0x140]
sub r9d, 1
xor r8d, r8d
mov rdi, rax
mov qword [rsp + 0x50], rax
mov rdx, r13
mov rcx, rax
call qword [0x0049f000]
xor edx, edx
mov rcx, rdi
call qword [0x0049f028]
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x00425698]
ja 0x407a33
mov rcx, qword [rsp + 0x140]
mov rax, qword [0x0049ed30]
cmp rcx, rax
je 0x407935
mov qword [rsp + 0x140], rax
mov eax, dword [rcx]
test eax, eax
je 0x4088e9
cmp eax, 0xffffffff
je 0x407935
lock sub dword [rcx], 1
je 0x4088e9
lea rax, [rsp + 0xc0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [0x0049eeb8]
mov qword [rsp + 0x58], rax
call rax
mov rdi, qword [rsp + 0xc0]
mov rax, qword [rsp + 0x48]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x160], rax
mov rax, rdi
add rax, rsi
je 0x407984
test rdi, rdi
je 0x40917d
cmp rsi, 0xf
mov qword [rsp + 0xc8], rsi
ja 0x4083d6
cmp rsi, 1
jne 0x408c20
movzx eax, byte [rdi]
mov byte [rsp + 0x170], al
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x168], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xc0]
mov eax, dword [rcx]
test eax, eax
je 0x408476
cmp eax, 0xffffffff
je 0x4079e4
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xc0]
je 0x408476
mov rax, qword [rsp + 0x160]
mov ecx, 0x15
lea rdi, str.No_Set_InstallHeight
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
seta sil
setb dl
sub esi, edx
cmp rax, qword [rsp + 0x48]
movsx esi, sil
je 0x407a19
mov rcx, rax
call fcn.00411da8
test esi, esi
jne 0x4087f5
lea rdx, [0x0042562e]
mov rcx, qword [rsp + 0x50]
call qword [0x0049ef10]
mov rax, qword [rbp + 0x138]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rax + 0xb8]
call qword [0x0049f570]
mov rcx, qword [rsp + 0x140]
mov eax, dword [rcx]
test eax, eax
je 0x407a75
cmp eax, 0xffffffff
je 0x407290
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x140]
jne 0x407290
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407290
sub r9d, 1
xor r8d, r8d
mov rdx, r13
mov rcx, r12
call qword [0x0049f000]
xor edx, edx
mov rcx, r12
call qword [0x0049f028]
cvtss2sd xmm0, xmm0
ucomisd xmm0, qword [0x00425698]
ja 0x407c0c
mov rcx, qword [rsp + 0x1c0]
mov rax, qword [0x0049ed30]
cmp rcx, rax
je 0x407af5
mov qword [rsp + 0x1c0], rax
mov eax, dword [rcx]
test eax, eax
je 0x4088ff
cmp eax, 0xffffffff
je 0x407af5
lock sub dword [rcx], 1
je 0x4088ff
lea rax, [rsp + 0x90]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [0x0049eeb8]
mov qword [rsp + 0x58], rax
call rax
mov rdi, qword [rsp + 0x90]
lea rax, [rsp + 0x100]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x110]
movsxd rsi, dword [rdi + 4]
mov qword [rsp + 0x100], rax
add rdi, qword [rdi + 0x10]
mov rax, rdi
add rax, rsi
je 0x407b54
test rdi, rdi
je 0x4091fc
cmp rsi, 0xf
mov qword [rsp + 0x98], rsi
ja 0x408426
cmp rsi, 1
jne 0x408c00
movzx eax, byte [rdi]
mov byte [rsp + 0x110], al
mov rax, qword [rsp + 0x50]
add rax, 0x10
mov qword [rsp + 0x108], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0x90]
mov eax, dword [rcx]
test eax, eax
je 0x40848c
cmp eax, 0xffffffff
je 0x407bb8
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x90]
je 0x40848c
mov rdx, qword [rsp + 0x100]
mov ecx, 9
lea rdi, str.OutRange
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
setb al
seta sil
sub esi, eax
mov rax, qword [rsp + 0x50]
movsx esi, sil
add rax, 0x10
cmp rdx, rax
je 0x407bf4
mov rcx, rdx
call fcn.00411da8
test esi, esi
jne 0x4086e0
lea rdx, [0x004255d8]
mov rcx, r12
call qword [0x0049ef10]
mov rax, qword [rbp + 0x138]
mov rdx, r12
mov rcx, qword [rax + 0xb0]
call qword [0x0049f570]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x407a75
cmp eax, 0xffffffff
je 0x407290
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
jne 0x407290
jmp 0x407a75
mov r8d, 0xa
xor edx, edx
mov rcx, r13
call qword [0x0049f018]
mov dword [rbp + 0x100], eax
mov rax, qword [rbp + 0x138]
mov rdx, r13
mov rcx, qword [rax + 0x168]
call qword [0x0049f570]
mov rax, qword [rbp + 0x138]
cmp dword [rbp + 0x100], 0x12b
mov rcx, qword [rax + 0x1b8]
jbe 0x408311
mov edx, 1
call qword [0x0049f518]
jmp 0x407290
mov r8d, 0xa
xor edx, edx
mov rcx, r13
mov rsi, qword [0x0049f018]
call rsi
mov dword [rbp + 0xe8], eax
mov rax, qword [rbp + 0x138]
mov rdx, r13
mov rdi, qword [0x0049f510]
mov rcx, qword [rax + 0x1d8]
call rdi
mov rax, qword [rbp + 0x138]
mov rcx, r12
mov rdx, qword [rax + 0x68]
call qword [0x0049f630]
mov r8d, 0xa
xor edx, edx
mov rcx, r12
call rsi
mov rcx, qword [rsp + 0x1c0]
mov esi, eax
mov eax, dword [rbp + 0xe8]
mov edx, dword [rcx]
test edx, edx
je 0x4083a0
cmp edx, 0xffffffff
je 0x407d37
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4083a0
cmp eax, esi
je 0x407290
call fcn.0040e3e0
mov rcx, rax
mov rsi, rax
call fcn.0040e790
mov rax, qword [rbp + 0x138]
mov rdx, r13
mov rcx, qword [rax + 0x68]
call rdi
mov rcx, rsi
call fcn.0040e790
jmp 0x407290
mov rdx, r13
mov rcx, qword [rsp + 0x38]
call qword [0x0049ef18]
mov rax, qword [rbp + 0x138]
mov rdx, r13
mov rcx, qword [rax + 0x108]
call qword [0x0049f570]
jmp 0x407290
mov edx, 1
mov rax, qword [rsp + 0x40]
lea rcx, [0x00425644]
call rax
mov qword [rsp + 0x1c0], rax
xor r9d, r9d
mov r8, r12
mov rdx, r13
mov dword [rsp + 0x20], 1
mov rcx, r15
call qword [0x0049f008]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x4083c0
cmp eax, 0xffffffff
je 0x407dfe
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4083c0
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
mov rsi, qword [0x0049f018]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x10]
mov rdx, r14
call rsi
mov dword [rbp + 0x124], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0x10
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x18]
mov rdx, r14
call rsi
mov byte [rbp + 0x128], al
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x20]
xor edx, edx
call rsi
test eax, eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
setne byte [rbp + 0x129]
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x28]
xor edx, edx
call rsi
mov dword [rbp + 0x12c], eax
mov rax, qword [rsp + 0x1a0]
mov r8d, 0xa
movsxd rdx, dword [rax + 8]
lea rcx, [rax + rdx*8 + 0x30]
xor edx, edx
call rsi
mov dword [rbp + 0x130], eax
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov rcx, r12
mov r8d, 2
mov rsi, qword [0x0049f000]
mov rdi, qword [rax + 0x220]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x10]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f570]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x4085f0
cmp eax, 0xffffffff
je 0x407f1b
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4085f0
mov rax, qword [rbp + 0x138]
mov r9d, 0xffffffff
mov r8d, 2
mov rcx, r12
mov rdi, qword [rax + 0x298]
mov rax, qword [rsp + 0x1a0]
movsxd rdx, dword [rax + 8]
lea rdx, [rax + rdx*8 + 0x18]
call rsi
mov rdx, r12
mov rcx, rdi
call qword [0x0049f510]
mov rcx, qword [rsp + 0x1c0]
mov eax, dword [rcx]
test eax, eax
je 0x408610
cmp eax, 0xffffffff
je 0x407f80
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x408610
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x12c]
mov rsi, qword [0x0049f518]
mov rcx, qword [rax + 0x210]
call rsi
mov rax, qword [rbp + 0x138]
mov edx, dword [rbp + 0x130]
mov rcx, qword [rax + 0x208]
call rsi
mov rcx, r15
call fcn.00422940
jmp 0x407290
mov r8d, 0xa
xor edx, edx
mov rcx, r13
call qword [0x0049f018]
test eax, eax
mov rax, qword [rbp + 0x138]
setne dl
mov byte [rbp + 0xfc], dl
movzx edx, dl
mov rcx, qword [rax + 0x188]
call qword [0x0049f518]
jmp 0x407290
xor edx, edx
mov rcx, r13
call qword [0x0049f028]
mov rax, qword [rbp + 0x138]
movss dword [rbp + 0xf8], xmm0
mov rdx, r13
mov rcx, qword [rax + 0x158]
call qword [0x0049f570]
jmp 0x407290
mov r8d, 0xa
xor edx, edx
mov rcx, r13
call qword [0x0049f010]
mov word [rbp + 0xf4], ax
mov rax, qword [rbp + 0x138]
mov rdx, r13
mov rcx, qword [rax + 0x198]
call qword [0x0049f570]
jmp 0x407290
xor edx, edx
mov rcx, r13
call qword [0x0049f028]
mov rax, qword [rbp + 0x138]
movss dword [rbp + 0xf0], xmm0
mov rdx, r13
mov rcx, qword [rax + 0xd8]
call qword [0x0049f570]
jmp 0x407290
mov rax, qword [rbp + 0x138]
lea r12, [rsp + 0x1c0]
mov rcx, r12
mov rdx, qword [rax + 0x198]
call qword [0x0049f648]
mov r8d, 0xa
xor edx, edx
mov rcx, r12
call qword [0x0049f018]
mov rcx, qword [rsp + 0x1c0]
mov esi, eax
mov eax, dword [rcx]
test eax, eax
je 0x4082d0
cmp eax, 0xffffffff
je 0x4080ee
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1c0]
je 0x4082d0
pxor xmm6, xmm6
ucomiss xmm6, dword [rbp + 0xf8]
jp 0x408101
je 0x4082f0
movzx edi, byte [rbp + 0x10c]
test dil, dil
mov ebx, 2
je 0x40811c
cmp dil, 5
setb bl
shl ebx, 2
mov rax, qword [0x0049ed30]
lea r14, [rsp + 0x180]
movsx edx, sil
mov rcx, r14
mov rsi, qword [0x0049ed58]
mov qword [rsp + 0x180], rax
call rsi
ucomiss xmm6, dword [rbp + 0xf8]
jp 0x408152
je 0x408300
movsx edx, byte [rbp + 0x108]
mov rcx, r14
call rsi
movzx edx, bl
mov rcx, r14
call rsi
xor r8d, r8d
mov rdx, r14
mov rcx, r13
call qword [0x0049efd8]
cmp eax, 0xffffffff
mov r15d, eax
je 0x408585
mov rcx, r14
call qword [0x0049ed48]
lea esi, [rbx + 5]
mov r8d, r15d
mov rdx, r13
lea rcx, [rsp + 0x88]
mov r9d, esi
and r9d, 0xf
call qword [0x0049efb8]
mov rax, qword [rsp + 0x180]
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x180], rdx
mov edx, dword [rax]
test edx, edx
je 0x408320
cmp edx, 0xffffffff
je 0x4081e1
lock sub dword [rax], 1
je 0x408320
mov rcx, qword [rsp + 0x180]
mov eax, dword [rcx]
cmp eax, 1
jbe 0x40834c
movsx r8d, byte [rcx + 0xb]
mov edx, dword [rcx + 4]
mov rcx, r14
shr r8d, 0x1f
add edx, 1
call qword [0x0049ed38]
mov rcx, qword [rsp + 0x180]
mov r11, qword [rcx + 0x10]
movzx r13d, sil
mov r15, rcx
add r11, rcx
sub r13d, 2
xor r10d, r10d
mov eax, 0xffff
movzx r13d, r13w
movzx edx, byte [r11 + r10]
xor eax, edx
mov edx, 8
nop
mov r9d, eax
shr eax, 1
mov r8d, eax
and r9d, 1
xor r8d, 0xa001
test r9d, r9d
cmovne eax, r8d
sub edx, 1
jne 0x408240
add r10, 1
cmp r13d, r10d
ja 0x408232
movzx esi, sil
cmp byte [r11 + rsi - 2], al
je 0x408646
mov eax, dword [r15]
test eax, eax
je 0x4082a0
cmp eax, 0xffffffff
je 0x4072f1
lock sub dword [r15], 1
mov rcx, qword [rsp + 0x180]
jne 0x4072f1
nop word [rax + rax]
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x4072f1
mov edx, eax
jmp 0x40709a
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4080ee
movzx edi, byte [rbp + 0x11c]
jmp 0x408108
movsx edx, byte [rbp + 0x118]
mov rcx, r14
call rsi
jmp 0x40815e
xor edx, edx
call qword [0x0049f518]
jmp 0x407290
mov rcx, qword [rsp + 0x88]
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
mov rcx, qword [rsp + 0x180]
mov eax, dword [rcx]
cmp eax, 1
ja 0x4081f4
mov r11, qword [rcx + 0x10]
cmp r11, 0x18
jne 0x4081f4
jmp 0x408218
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4074de
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4076fe
mov dword [rsp + 0x50], eax
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
mov eax, dword [rsp + 0x50]
jmp 0x407d37
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407dfe
mov rcx, qword [rsp + 0x60]
lea rdx, [rsp + 0xc8]
xor r8d, r8d
call fcn.00411dc0
mov rdx, qword [rsp + 0xc8]
mov qword [rsp + 0x160], rax
mov qword [rsp + 0x170], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xc8]
mov rax, qword [rsp + 0x160]
jmp 0x4079af
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x98]
xor r8d, r8d
call fcn.00411dc0
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x110], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0x98]
mov rax, qword [rsp + 0x100]
jmp 0x407b83
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x4079e4
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x407bb8
mov ecx, 1
cmp bl, cl
jne 0x408e25
lea r15, [rsp + 0x1a0]
cmp dl, 0xfe
je 0x4090f0
cmp dl, 0xff
jne 0x409108
lea rdx, str.OutRange
mov rcx, r15
mov rbx, qword [0x0049ef10]
call rbx
pxor xmm7, xmm7
ucomiss xmm6, dword [rbp + 0xf8]
mov eax, 4
jp 0x4084f4
je 0x408ffb
sub eax, dword [rbp + 0x110]
pxor xmm1, xmm1
movsd xmm0, qword [0x004256a0]
cvtsi2sd xmm1, eax
call fcn.00411f00
lea rdx, str._.3f
mov rcx, r15
movapd xmm1, xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, xmm7
divsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
movapd xmm2, xmm0
movq r8, xmm0
call rbx
mov rax, qword [rbp + 0x138]
mov rdx, r15
mov rcx, qword [rax + 0xb8]
call qword [0x0049f570]
mov rcx, qword [rsp + 0x1a0]
mov eax, dword [rcx]
test eax, eax
je 0x408574
cmp eax, 0xffffffff
je 0x408585
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x1a0]
jne 0x408585
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
mov rcx, qword [rsp + 0x180]
mov r15, rcx
jmp 0x408277
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x4075fb
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407880
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x40781b
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407f1b
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407f80
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407660
movzx edx, byte [r11 + rsi - 1]
sar eax, 8
cmp edx, eax
jne 0x408277
movzx eax, bl
add r11, 3
test eax, eax
mov ecx, eax
je 0x408678
xor eax, eax
mov edx, eax
add eax, 1
movzx r8d, byte [r11 + rdx]
cmp eax, ecx
mov byte [r12 + rdx], r8b
jb 0x408666
movzx edx, byte [rsp + 0x1c0]
mov rax, qword [0x0049ed30]
cmp dl, 0xfd
mov qword [rsp + 0x1a0], rax
jb 0x408e25
cmp bl, 1
jbe 0x4084a2
cmp dl, byte [rsp + 0x1c1]
jne 0x408e25
lea r8, [rsp + 0x1bf]
mov eax, 2
jmp 0x4086cb
add rax, 1
cmp dl, byte [r8 + rax]
jne 0x408e25
cmp bl, al
mov ecx, eax
ja 0x4086bd
jmp 0x4084a7
lea rax, [rsp + 0xa0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [rsp + 0x58]
call rax
mov rdi, qword [rsp + 0xa0]
lea rax, [rsp + 0x120]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x130]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x120], rax
mov rax, rdi
add rax, rsi
je 0x408738
test rdi, rdi
je 0x4091e0
cmp rsi, 0xf
mov qword [rsp + 0xa8], rsi
ja 0x408c81
cmp rsi, 1
jne 0x408dfc
movzx eax, byte [rdi]
mov byte [rsp + 0x130], al
mov rax, qword [rsp + 0x50]
add rax, 0x10
mov qword [rsp + 0x128], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xa0]
mov eax, dword [rcx]
test eax, eax
je 0x40892b
cmp eax, 0xffffffff
je 0x40879c
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xa0]
je 0x40892b
mov rdx, qword [rsp + 0x120]
mov ecx, 0xc
lea rdi, str.InBlindZone
mov rsi, rdx
repe cmpsb byte [rsi], byte [rdi]
setb al
seta sil
sub esi, eax
mov rax, qword [rsp + 0x50]
movsx esi, sil
add rax, 0x10
cmp rdx, rax
je 0x4087d8
mov rcx, rdx
call fcn.00411da8
test esi, esi
jne 0x408a45
lea rdx, [0x004255f1]
mov rcx, r12
call qword [0x0049ef10]
jmp 0x407c0c
lea rax, [rsp + 0xd0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [rsp + 0x58]
call rax
mov rdi, qword [rsp + 0xd0]
lea rax, [r14 + 0x10]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x180], rax
mov rax, rdi
add rax, rsi
je 0x40883c
test rdi, rdi
je 0x409189
cmp rsi, 0xf
mov qword [rsp + 0xd8], rsi
ja 0x408c33
cmp rsi, 1
jne 0x408e13
movzx eax, byte [rdi]
mov byte [rsp + 0x190], al
lea rax, [r14 + 0x10]
mov qword [rsp + 0x188], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xd0]
mov eax, dword [rcx]
test eax, eax
je 0x408915
cmp eax, 0xffffffff
je 0x408897
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xd0]
je 0x408915
mov rax, qword [rsp + 0x180]
mov ecx, 9
lea rdi, str.OutRange
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
setb dl
seta sil
sub esi, edx
lea rdx, [r14 + 0x10]
movsx esi, sil
cmp rax, rdx
je 0x4088ce
mov rcx, rax
call fcn.00411da8
test esi, esi
jne 0x408941
lea rdx, [0x004255d8]
mov rcx, qword [rsp + 0x50]
call qword [0x0049ef10]
jmp 0x407a33
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407935
mov r8d, 8
mov edx, 2
call qword [0x0049ed28]
jmp 0x407af5
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x408897
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x40879c
lea rax, [rsp + 0xe0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [rsp + 0x58]
call rax
mov rdi, qword [rsp + 0xe0]
lea rax, [r15 + 0x10]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x1a0], rax
mov rax, rdi
add rax, rsi
je 0x408990
test rdi, rdi
jne 0x408990
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
cmp rsi, 0xf
mov qword [rsp + 0xe8], rsi
ja 0x408bb2
cmp rsi, 1
jne 0x40905f
movzx eax, byte [rdi]
mov byte [rsp + 0x1b0], al
lea rax, [r15 + 0x10]
mov qword [rsp + 0x1a8], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xe0]
mov eax, dword [rcx]
test eax, eax
je 0x408ce7
cmp eax, 0xffffffff
je 0x4089ef
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xe0]
je 0x408ce7
mov rax, qword [rsp + 0x1a0]
mov ecx, 0xc
lea rdi, str.InBlindZone
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
setb dl
seta sil
sub esi, edx
lea rdx, [r15 + 0x10]
movsx esi, sil
cmp rax, rdx
je 0x408a26
mov rcx, rax
call fcn.00411da8
test esi, esi
jne 0x408cfd
lea rdx, [0x004255f1]
mov rcx, qword [rsp + 0x50]
call qword [0x0049ef10]
jmp 0x407a33
lea rax, [rsp + 0xb0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [rsp + 0x58]
call rax
mov rdi, qword [rsp + 0xb0]
lea rax, [rsp + 0x140]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x150]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x140], rax
mov rax, rdi
add rax, rsi
je 0x408aa5
test rdi, rdi
jne 0x408aa5
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
cmp rsi, 0xf
mov qword [rsp + 0xb8], rsi
ja 0x408b62
cmp rsi, 1
jne 0x409071
movzx eax, byte [rdi]
mov byte [rsp + 0x150], al
mov rax, qword [rsp + 0x50]
add rax, 0x10
mov qword [rsp + 0x148], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rcx]
test eax, eax
je 0x408cd1
cmp eax, 0xffffffff
je 0x408b09
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xb0]
je 0x408cd1
mov rax, qword [rsp + 0x140]
mov ecx, 0xb
lea rdi, str.LackEnergy
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
setb dl
seta sil
sub esi, edx
mov rdx, qword [rsp + 0x50]
movsx esi, sil
add rdx, 0x10
cmp rax, rdx
je 0x408b45
mov rcx, rax
call fcn.00411da8
test esi, esi
jne 0x407c0c
lea rdx, [0x00425606]
mov rcx, r12
call qword [0x0049ef10]
jmp 0x407c0c
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xb8]
xor r8d, r8d
call fcn.00411dc0
mov rdx, qword [rsp + 0xb8]
mov qword [rsp + 0x140], rax
mov qword [rsp + 0x150], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xb8]
mov rax, qword [rsp + 0x140]
jmp 0x408ad4
lea rdx, [rsp + 0xe8]
xor r8d, r8d
mov rcx, r15
call fcn.00411dc0
mov rdx, qword [rsp + 0xe8]
mov qword [rsp + 0x1a0], rax
mov qword [rsp + 0x1b0], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xe8]
mov rax, qword [rsp + 0x1a0]
jmp 0x4089ba
test rsi, rsi
je 0x408469
mov rax, qword [rsp + 0x50]
add rax, 0x10
jmp 0x408453
test rsi, rsi
je 0x408419
mov rax, qword [rsp + 0x48]
jmp 0x408403
lea rdx, [rsp + 0xd8]
xor r8d, r8d
mov rcx, r14
call fcn.00411dc0
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x190], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xd8]
mov rax, qword [rsp + 0x180]
jmp 0x408866
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0xa8]
xor r8d, r8d
call fcn.00411dc0
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x130], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xa8]
mov rax, qword [rsp + 0x120]
jmp 0x408767
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x408b09
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x4089ef
lea rax, [rsp + 0xf0]
mov rdx, r13
mov qword [rsp + 0x68], rax
mov rcx, rax
mov rax, qword [rsp + 0x58]
call rax
mov rdi, qword [rsp + 0xf0]
lea rax, [r12 + 0x10]
movsxd rsi, dword [rdi + 4]
add rdi, qword [rdi + 0x10]
mov qword [rsp + 0x1c0], rax
mov rax, rdi
add rax, rsi
je 0x408d45
test rdi, rdi
je 0x409208
cmp rsi, 0xf
mov qword [rsp + 0xf8], rsi
ja 0x409090
cmp rsi, 1
jne 0x4090de
movzx eax, byte [rdi]
mov byte [rsp + 0x1d0], al
lea rax, [r12 + 0x10]
mov qword [rsp + 0x1c8], rsi
mov byte [rax + rsi], 0
mov rcx, qword [rsp + 0xf0]
mov eax, dword [rcx]
test eax, eax
je 0x408fe5
cmp eax, 0xffffffff
je 0x408da5
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0xf0]
je 0x408fe5
mov rax, qword [rsp + 0x1c0]
mov ecx, 0xb
lea rdi, str.LackEnergy
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
setb dl
seta sil
sub esi, edx
lea rdx, [r12 + 0x10]
movsx esi, sil
cmp rax, rdx
je 0x408ddd
mov rcx, rax
call fcn.00411da8
test esi, esi
jne 0x407a33
lea rdx, [0x00425606]
mov rcx, qword [rsp + 0x50]
call qword [0x0049ef10]
jmp 0x407a33
test rsi, rsi
je 0x408cc4
mov rax, qword [rsp + 0x50]
add rax, 0x10
jmp 0x408cae
test rsi, rsi
je 0x408c74
lea rax, [r14 + 0x10]
jmp 0x408c5e
mov dword [rsp + 0x140], 0
xor eax, eax
cmp dil, 4
mov word [rsp + 0x120], ax
mov dword [rsp + 0x160], 0
ja case.default.0x408e5d
lea rcx, [0x00425680]
movsxd rax, dword [rcx + rdi*4]
add rax, rcx
jmp rax
movzx eax, byte [rsp + 0x1c3]
mov byte [rsp + 0x163], dl
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x1c2]
mov byte [rsp + 0x161], al
movzx eax, byte [rsp + 0x1c1]
mov byte [rsp + 0x162], al
movss xmm7, dword [rsp + 0x160]
jmp 0x4084e0
movzx eax, byte [rsp + 0x1c1]
mov byte [rsp + 0x141], dl
pxor xmm7, xmm7
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
mov byte [rsp + 0x140], al
movzx eax, byte [rsp + 0x1c3]
mov byte [rsp + 0x142], al
movzx eax, byte [rsp + 0x1c2]
mov byte [rsp + 0x143], al
cvtsi2ss xmm7, dword [rsp + 0x140]
jmp 0x4084e0
movzx eax, byte [rsp + 0x1c3]
mov byte [rsp + 0x143], dl
pxor xmm7, xmm7
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
mov byte [rsp + 0x140], al
movzx eax, byte [rsp + 0x1c2]
mov byte [rsp + 0x141], al
movzx eax, byte [rsp + 0x1c1]
mov byte [rsp + 0x142], al
cvtsi2ss xmm7, dword [rsp + 0x140]
jmp 0x4084e0
movzx eax, byte [rsp + 0x1c1]
mov byte [rsp + 0x121], dl
pxor xmm7, xmm7
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
mov byte [rsp + 0x120], al
movsx eax, word [rsp + 0x120]
cvtsi2ss xmm7, eax
jmp 0x4084e0
movzx eax, byte [rsp + 0x1c1]
mov byte [rsp + 0x161], dl
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
mov byte [rsp + 0x160], al
movzx eax, byte [rsp + 0x1c3]
mov byte [rsp + 0x162], al
movzx eax, byte [rsp + 0x1c2]
mov byte [rsp + 0x163], al
movss xmm7, dword [rsp + 0x160]
jmp 0x4084e0
mov r8d, 8
mov edx, 1
call qword [0x0049ed28]
jmp 0x408da5
sub eax, dword [rbp + 0x120]
pxor xmm1, xmm1
movsd xmm0, qword [0x004256a0]
cvtsi2sd xmm1, eax
call fcn.00411f00
lea rdx, str._.3f
mov rcx, r15
movapd xmm1, xmm0
pxor xmm0, xmm0
cvtss2sd xmm0, xmm7
divsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
cvtss2sd xmm0, xmm0
movapd xmm2, xmm0
movq r8, xmm0
call rbx
mov rax, qword [rbp + 0x138]
mov rdx, r15
mov rcx, qword [rax + 0xb0]
call qword [0x0049f570]
jmp 0x408553
test rsi, rsi
je 0x408bf3
lea rax, [r15 + 0x10]
jmp 0x408bdd
test rsi, rsi
je 0x408ba5
mov rax, qword [rsp + 0x50]
add rax, 0x10
jmp 0x408b8f
lea rdx, [rsp + 0xf8]
xor r8d, r8d
mov rcx, r12
call fcn.00411dc0
mov rdx, qword [rsp + 0xf8]
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1d0], rdx
mov r8, rsi
mov rdx, rdi
mov rcx, rax
call fcn.00417420
mov rsi, qword [rsp + 0xf8]
mov rax, qword [rsp + 0x1c0]
jmp 0x408d70
test rsi, rsi
je 0x4090d1
lea rax, [r12 + 0x10]
jmp 0x4090bb
lea rdx, str.InBlindZone
mov rcx, r15
mov rbx, qword [0x0049ef10]
call rbx
jmp 0x4084dc
lea rdx, str.LackEnergy
mov rcx, r15
mov rbx, qword [0x0049ef10]
call rbx
jmp 0x4084dc
lea rcx, [rsp + 0x78]
call fcn.00422960
lea rcx, [rsp + 0x70]
call fcn.00422960
mov rcx, rbx
call fcn.00411dc8
mov rcx, qword [rsp + 0x68]
mov rbx, rax
call fcn.004178c0
mov rcx, qword [rsp + 0x50]
call fcn.00422960
mov rcx, r13
call fcn.00422960
lea rcx, [rsp + 0x80]
call fcn.00422960
jmp 0x409133
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
mov rcx, r12
mov rbx, rax
call fcn.00422960
mov rcx, r15
call fcn.00422940
jmp 0x409166
pxor xmm7, xmm7
lea r15, [rsp + 0x1a0]
mov rbx, qword [0x0049ef10]
jmp 0x4084e0
mov rcx, qword [rsp + 0x68]
mov rbx, rax
call fcn.004178c0
mov rcx, r12
call fcn.00422960
jmp 0x409166
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
jmp 0x40914f
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
lea rcx, str.basic_string::_M_construct_null_not_valid
call fcn.00411db8
jmp 0x4091c2