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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x3b8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x2f0], xmm6
movaps xmmword [rbp + 0x300], xmm7
movaps xmmword [rbp + 0x310], xmm8
movaps xmmword [rbp + 0x320], xmm9
mov eax, 0x4fc
mov r11d, dword [rbp + 0x3a0]
cmp dword [rbp + 0x3a0], 0x4fc
cmovle eax, dword [rbp + 0x3a0]
mov r15d, eax
test r8d, r8d
mov qword [rbp + 0x388], rdx
mov r14, rcx
mov r13d, r8d
setle dl
test r11d, r11d
mov qword [rbp + 0x398], r9
mov ecx, dword [rbp + 0x3a8]
mov dword [rbp + 0x9c], 0
setle al
mov dword [r14 + 0x46dc], 0
or dl, al
mov byte [rbp + 0x5c], dl
jne 0x412949
cmp dword [rbp + 0x3a0], 1
je 0x410122
mov dword [rbp + 0x88], 0
mov eax, dword [r14 + 4]
mov dword [rbp + 0x78], eax
movsxd rax, dword [r14]
add rax, r14
cmp dword [r14 + 0x6c], 0x803
mov qword [rbp + 0x80], rax
je 0x40f98e
mov eax, dword [r14 + 0x74]
mov dword [rbp + 0x88], eax
cmp dword [r14 + 0xa8], ecx
cmovle ecx, dword [r14 + 0xa8]
mov edx, 0x271f
lea r8, [rbp + 0xa0]
mov dword [rbp + 0x8c], ecx
mov rcx, qword [rbp + 0x80]
call fcn.004251d0
cmp dword [r14 + 0x2c], 6
mov ebx, dword [r14 + 0x90]
mov dword [rbp + 0xc0], 0
mov edx, dword [r14 + 0x70]
jg 0x40ffc0
mov eax, 0xffffffff
mov dword [rbp + 0x70], 0
mov dword [r14 + 0x8c], 0xffffffff
mov dword [r14 + 0x46cc], 0
mov dword [rbp + 0x60], eax
mov dword [rbp + 0x6c], eax
pxor xmm0, xmm0
cmp edx, 2
je 0x410070
mov ecx, dword [r14 + 0xa4]
cmp ecx, 0xfffffc18
je 0x4100b0
cmp ecx, 0xffffffff
jne 0x40fa37
mov eax, r15d
imul eax, ebx
shl eax, 3
cdq
idiv r13d
mov ecx, eax
mov eax, ebx
mov r12d, dword [r14 + 0x94]
mov dword [r14 + 0xa0], ecx
cdq
idiv r13d
mov edi, eax
mov r11d, eax
test r12d, r12d
je 0x40ff50
cmp r15d, 2
jle 0x40fe80
lea eax, [rdi + rdi*2]
mov r10d, dword [r14 + 0xa0]
shl eax, 3
cmp r10d, eax
jl 0x40fe80
mov eax, r15d
imul eax, edi
mov dword [rbp + 0x48], eax
cmp edi, 0x31
jg 0x40fa9f
cmp eax, 0x12b
jle 0x40fe80
cmp r10d, 0x95f
jle 0x40fe80
mov eax, dword [rbp + 0x48]
mov r11d, dword [r14 + 0x70]
mov ecx, r10d
mov r9d, r12d
mov esi, dword [r14 + 0x28]
mov r8d, edi
shl eax, 3
mov edx, r11d
mov dword [rbp + 0x44], eax
mov eax, dword [r14 + 0x2c]
mov dword [rbp + 0x54], eax
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 0
mov dword [rbp + 0x40], r11d
mov dword [rbp + 0x58], r10d
call fcn.0040eb70
mov edx, dword [r14 + 0x7c]
mov ecx, dword [r14 + 0x6c]
mov dword [rbp + 0x68], 0x7f
mov r10d, dword [rbp + 0x58]
mov r11d, dword [rbp + 0x40]
cmp edx, 0xbb9
mov dword [rbp + 0x50], ecx
je 0x40fb40
mov dword [rbp + 0x68], 0
cmp edx, 0xbba
je 0x40fb40
mov edx, dword [r14 + 0x8c]
test edx, edx
js 0x411300
imul edx, edx, 0x147
sar edx, 8
mov dword [rbp + 0x68], edx
cmp ecx, 0x801
je 0x411ca0
nop dword [rax + rax]
mov ecx, dword [r14 + 0x78]
mov dword [rbp + 0x58], ecx
cmp ecx, 0xfffffc18
je 0x410fa0
cmp r11d, 2
je 0x4102e1
mov dword [r14 + 0x376c], r11d
mov ecx, dword [r14 + 0x3790]
cmp dword [rbp + 0x50], 0x803
mov dword [rbp + 0x58], ecx
je 0x40fbb1
mov edx, dword [r14 + 0x88]
cmp edx, 0xfffffc18
je 0x4111b0
mov dword [r14 + 0x378c], edx
cmp edx, 0x3ea
je 0x40fbbc
mov eax, ebx
mov edx, 0x51eb851f
imul edx
mov eax, ebx
sar eax, 0x1f
sar edx, 5
sub edx, eax
cmp edx, r13d
jle 0x40fbbc
mov dword [r14 + 0x378c], 0x3ea
mov eax, dword [r14 + 0xb0]
mov dword [rbp + 0x50], eax
test eax, eax
je 0x410df0
mov dword [r14 + 0x378c], 0x3ea
mov eax, dword [rbp + 0x58]
test eax, eax
jg 0x411150
movsxd rax, dword [rbp + 0x78]
add rax, r14
mov qword [rbp + 0x38], rax
cmp r11d, 1
je 0x410ef0
mov r9d, r12d
mov r8d, edi
mov edx, r11d
mov ecx, r10d
mov dword [r14 + 0x44], 0
mov dword [rsp + 0x30], esi
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0x20], 0x3ea
mov dword [rsp + 0x28], eax
call fcn.0040eb70
mov dword [rbp + 0x50], 0
mov dword [rbp + 0x54], eax
mov dword [rbp + 0x34], 0
mov dword [rbp + 0x28], 0
lea rax, [rbp + 0x100]
mov byte [rbp + 0x58], 0
mov r11d, dword [r14 + 0x37a8]
mov r12d, 0x3ea
mov dword [rbp + 0x40], 0
mov qword [rbp + 0x78], rax
cmp dword [r14 + 0x70], 2
lea r9, [0x0046c100]
lea r8, [0x0046c120]
jne 0x40fc90
cmp dword [r14 + 0x78], 1
lea rax, [0x0046c0c0]
cmovne r9, rax
lea rax, [0x0046c0e0]
cmovne r8, rax
mov r10d, dword [rbp + 0x68]
xor edx, edx
mov dword [rbp + 0x68], r11d
mov eax, 0x2328
mov ecx, 0x2328
mov r11, qword [rbp + 0x78]
imul r10d, r10d
jmp 0x40fcb8
mov ecx, dword [r9 + rdx]
mov eax, dword [r8 + rdx]
sub eax, ecx
imul eax, r10d
sar eax, 0xe
add eax, ecx
mov dword [r11 + rdx], eax
add rdx, 4
cmp rdx, 0x20
jne 0x40fcb0
mov r11d, dword [rbp + 0x68]
mov rdx, qword [rbp + 0x78]
mov eax, 0x451
mov r8d, dword [rbp + 0x54]
mov ecx, dword [rdx + 0x18]
test r11d, r11d
jne 0x40fcfe
mov r9d, dword [rdx + 0x1c]
cmp dword [r14 + 0x37a0], eax
jl 0x410a50
sub ecx, r9d
cmp ecx, r8d
jle 0x411114
sub eax, 1
sub rdx, 8
cmp eax, 0x44d
jne 0x40fce2
mov dword [r14 + 0x37a0], eax
mov dword [r14 + 0x379c], eax
mov edx, dword [r14 + 0x84]
cmp edx, eax
jge 0x40fd35
mov dword [r14 + 0x379c], edx
mov ecx, dword [r14 + 0x80]
cmp ecx, 0xfffffc18
je 0x40fd4b
mov dword [r14 + 0x379c], ecx
cmp dword [rbp + 0x44], 0x3a97
jg 0x410a60
cmp byte [rbp + 0x58], 0
je 0x410a60
cmp dword [r14 + 0x379c], 0x44f
mov eax, 0x44f
cmovle eax, dword [r14 + 0x379c]
mov dword [r14 + 0x379c], eax
cmp ebx, 0x5dc0
jg 0x40fdb7
cmp ebx, 0x3e80
jg 0x40fdb7
cmp ebx, 0x2ee0
jg 0x40fdb7
cmp eax, 0x44f
je 0x410aab
cmp ebx, 0x1f40
jg 0x40fdb7
cmp eax, 0x44d
jg 0x410ac2
mov eax, dword [r14 + 0x46cc]
cmp r12d, 0x3ea
sete dl
test eax, eax
je 0x40fdd8
cmp ecx, 0xfffffc18
je 0x411390
test esi, esi
sete al
or al, dl
jne 0x410328
mov r10d, dword [r14 + 0x30]
test r10d, r10d
je 0x410328
cmp esi, 0x19
mov eax, 0x19
mov r8d, dword [r14 + 0x34]
mov ecx, dword [rbp + 0x54]
movsxd rdx, dword [r14 + 0x379c]
cmovle eax, esi
mov r9d, 0x7d
lea rbx, [0x00469e18]
lea r11, [rbx + 4]
mov r12, rdx
sub r9d, eax
jmp 0x40fe69
add r10d, eax
test r8d, r8d
cmove eax, r10d
imul eax, r9d
cdqe
imul rax, rax, 0x28f
sar rax, 0x10
cmp ecx, eax
jg 0x4112f4
cmp esi, 5
jle 0x410328
sub rdx, 1
lea eax, [rdx + 1]
cmp eax, 0x44d
jle 0x410321
mov dword [r14 + 0x379c], edx
mov eax, dword [rbx + rdx*8]
mov r10d, dword [r11 + rdx*8]
cmp r8d, 1
jne 0x40fe24
sub eax, r10d
jmp 0x40fe2e
mov r8d, dword [r14 + 0x379c]
mov ecx, dword [r14 + 0x378c]
mov eax, 0x44d
test r8d, r8d
cmove r8d, eax
test ecx, ecx
jne 0x4100c5
cmp edi, 0x64
jle 0x412cd6
xor edi, edi
xor ebx, ebx
xor esi, esi
mov ecx, 0x3ea
cmp r8d, 0x44e
jne 0x40feca
mov ecx, 0x3ea
mov r8d, 0x44d
mov r9d, dword [r14 + 0x376c]
mov edx, r11d
call fcn.0040e720
or eax, edi
mov rdi, qword [rbp + 0x398]
mov byte [rdi], al
cmp esi, 1
jle 0x4101a2
cmp r15d, 2
mov edi, 2
mov eax, 2
cmovge edi, r15d
cmp esi, 3
jne 0x40ff0e
mov rsi, qword [rbp + 0x398]
mov byte [rsi + 1], bl
mov r9d, dword [r14 + 0x94]
test r9d, r9d
je 0x4101c3
movaps xmm6, xmmword [rbp + 0x2f0]
movaps xmm7, xmmword [rbp + 0x300]
movaps xmm8, xmmword [rbp + 0x310]
movaps xmm9, xmmword [rbp + 0x320]
lea rsp, [rbp + 0x338]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea eax, [rbx + rbx*2]
shl eax, 2
cdq
idiv r13d
mov r8d, eax
lea eax, [rcx + rcx*2]
mov ecx, r15d
shl eax, 2
lea edx, [rax + 7]
cmovs eax, edx
sar eax, 3
mov edx, eax
mov eax, r8d
shr eax, 0x1f
add eax, r8d
sar eax, 1
add eax, edx
cdq
idiv r8d
mov edx, 0x2aaaaaab
cmp eax, r15d
cmovle ecx, eax
imul r8d, ecx
shl r8d, 3
mov eax, r8d
sar r8d, 0x1f
imul edx
mov eax, 1
sar edx, 1
sub edx, r8d
test ecx, ecx
cmovg eax, ecx
mov dword [r14 + 0xa0], edx
mov r15d, eax
jmp 0x40fa59
cmp ebx, 0x3e7f
jle 0x40f9db
mov ecx, r13d
imul ecx, edx
test ecx, ecx
jle 0x412650
mov rax, qword [rbp + 0x388]
sub ecx, 1
pxor xmm1, xmm1
pxor xmm2, xmm2
lea rcx, [rax + rcx*4 + 4]
movss xmm0, dword [rax]
add rax, 4
maxss xmm1, xmm0
minss xmm2, xmm0
cmp rcx, rax
jne 0x40fff1
xorps xmm2, xmmword [0x0046c150]
maxss xmm1, xmm2
movzx ecx, byte [rbp + 0x8c]
mov eax, 1
pxor xmm0, xmm0
movss xmm6, dword [0x0046c164]
shl eax, cl
movaps xmm4, xmm6
cvtsi2ss xmm0, eax
divss xmm4, xmm0
comiss xmm4, xmm1
jb 0x4101e3
mov eax, 0xffffffff
mov dword [rbp + 0x70], 1
pxor xmm0, xmm0
mov dword [r14 + 0x46cc], 0
mov dword [rbp + 0x60], eax
mov dword [rbp + 0x6c], eax
cmp edx, 2
jne 0x40fa10
nop dword [rax]
cmp dword [r14 + 0x78], 1
je 0x40fa10
mov rcx, qword [rbp + 0x388]
mov r8d, ebx
lea r9, [r14 + 0x37b8]
mov edx, r13d
call fcn.0040f430
mov ecx, dword [r14 + 0xa4]
mov ebx, dword [r14 + 0x90]
cmp ecx, 0xfffffc18
jne 0x40fa23
nop
imul eax, ebx, 0x3c
mov ecx, dword [r14 + 0x70]
imul ecx, ebx
cdq
idiv r13d
add ecx, eax
jmp 0x40fa37
cmp edi, 0x64
jg 0x40feab
cmp edi, 0x19
jne 0x412cdb
cmp ecx, 0x3e8
je 0x412cdb
mov edi, 1
xor ebx, ebx
mov esi, 1
mov r11d, 0x32
cmp ecx, 0x3ea
je 0x412d3c
cmp ecx, 0x3e9
jne 0x40feca
cmp r8d, 0x450
mov eax, 0x450
cmovle r8d, eax
jmp 0x40feca
lea eax, [r8 + r8*4]
add eax, eax
cmp dword [r14 + 0x90], eax
jne 0x40f95c
mov eax, 0xfffffffe
jmp 0x40ff1e
cmp dword [rbp + 0x3a0], 1
je 0x410165
cmp ecx, 0x3e8
sete r9b
cmp edi, 0xa
je 0x412d20
test r9b, r9b
je 0x412d20
cmp edi, 0xc
mov r9d, dword [r14 + 0x376c]
sete dl
setle r11b
movzx edx, dl
lea edx, [rdx + rdx*8 + 0x10]
cmp r8d, 0x44f
jle 0x41018c
mov r8d, 0x44f
mov ecx, 0x3e8
call fcn.0040e720
mov rdi, qword [rbp + 0x398]
or eax, r11d
mov byte [rdi], al
mov r9d, dword [r14 + 0x94]
test r15d, r15d
mov edi, 1
mov eax, 1
cmovg edi, r15d
test r9d, r9d
jne 0x40ff1e
mov rcx, qword [rbp + 0x398]
mov r8d, edi
mov edx, eax
call fcn.00416720
test eax, eax
mov eax, 0xfffffffd
cmove eax, edi
jmp 0x40ff1e
mov eax, dword [r14 + 0x1dd4]
mov rdx, qword [rbp + 0xa0]
lea rcx, [r14 + 0xbc]
mov dword [rbp + 0x6c], eax
mov eax, dword [r14 + 0x1dd8]
mov dword [rbp + 0x60], eax
lea rax, [rbp + 0xc0]
mov qword [rsp + 0x58], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rsp + 0x50], rax
mov eax, dword [rbp + 0x8c]
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0x3d0]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x3c8]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x3c0]
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x28], eax
mov r9d, dword [rbp + 0x3b8]
mov r8, qword [rbp + 0x3b0]
call fcn.00419c50
movss xmm0, dword [rbp + 0xe4]
comiss xmm0, dword [0x0046c1c4]
ja 0x411ef0
mov eax, dword [rbp + 0xc0]
mov edx, dword [r14 + 0x70]
mov dword [r14 + 0x8c], 0xffffffff
mov ebx, dword [r14 + 0x90]
mov dword [r14 + 0x46cc], 0
mov dword [rbp + 0x70], eax
mov r10d, dword [rbp + 0x70]
test r10d, r10d
je 0x40fa03
cmp dword [r14 + 0x7c], 0xfffffc18
je 0x410ad2
mov eax, dword [rbp + 0xe0]
cmp eax, 0xc
jg 0x410a30
mov dword [r14 + 0x46cc], 0x44d
mov dword [rbp + 0x70], 0
jmp 0x40fa03
mov dword [r14 + 0x376c], ecx
mov eax, ecx
mov r9d, r12d
mov r8d, edi
mov dword [rsp + 0x30], esi
mov ecx, dword [rbp + 0x54]
mov edx, eax
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x28], ecx
mov ecx, r10d
mov dword [rbp + 0x40], r10d
mov dword [rbp + 0x58], eax
call fcn.0040eb70
mov r11d, dword [rbp + 0x58]
mov r10d, dword [rbp + 0x40]
jmp 0x40fb64
mov dword [r14 + 0x379c], r12d
xor eax, eax
mov dword [r14 + 0x34], eax
mov rcx, qword [rbp + 0x80]
mov edx, 0xfc4
mov r8d, dword [rbp + 0x8c]
call fcn.004251d0
mov ecx, dword [r14 + 0x378c]
cmp ecx, 0x3ea
je 0x410f60
mov r9d, dword [r14 + 0xb0]
test r9d, r9d
je 0x410420
mov dword [r14 + 0x379c], 0x44d
mov eax, 1
mov dword [rbp + 0x68], 0x44d
cmp ecx, 0x3e8
jne 0x4110ad
mov ebx, dword [r14 + 0x90]
mov r9d, 0x51eb851f
mov eax, ebx
imul r9d
mov eax, ebx
sar eax, 0x1f
sar edx, 4
mov esi, edx
sub esi, eax
cmp esi, r13d
jge 0x411030
cmp ecx, 0x3e8
jne 0x410bba
lea ecx, [rbx + rbx*2]
mov edx, 0x51eb851f
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 4
sub edx, ecx
cmp r13d, edx
jg 0x410b78
mov eax, dword [r14 + 0xa0]
mov ecx, 0x3e8
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x37a4]
test eax, eax
je 0x4104b0
mov dword [r14 + 0x37a4], 0
mov dword [rbp + 0x34], 1
mov dword [rbp + 0x40], 2
jmp 0x4104c0
mov eax, dword [r14 + 0x379c]
mov dword [rbp + 0x68], eax
cmp ecx, 0x3e8
jne 0x4110a5
cmp dword [rbp + 0x68], 0x44f
jle 0x41038c
mov ebx, dword [r14 + 0x90]
mov ecx, 0x51eb851f
mov dword [r14 + 0x378c], 0x3e9
mov eax, ebx
imul ecx
mov eax, ebx
sar eax, 0x1f
sar edx, 4
mov esi, edx
sub esi, eax
cmp r13d, esi
jg 0x410bba
lea r8d, [rbx + rbx*2]
mov eax, r8d
sar r8d, 0x1f
imul ecx
mov ecx, edx
sar ecx, 4
sub ecx, r8d
cmp r13d, ecx
jg 0x410bba
mov eax, dword [r14 + 0xa0]
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x37a4]
test eax, eax
jne 0x4103fa
mov ecx, 0x3e9
nop
cmp ecx, 0x3ea
je 0x4104f0
mov eax, dword [rbp + 0x28]
test eax, eax
je 0x4104f0
nop
mov r9d, dword [r14 + 0x376c]
mov edx, dword [rbp + 0x60]
mov r8d, edi
mov ecx, r15d
xor esi, esi
call fcn.0040ec60
test eax, eax
mov dword [rbp + 0x58], eax
setne sil
mov dword [rbp + 0x8c], esi
mov esi, r15d
sub esi, eax
mov dword [rbp + 0x20], esi
jmp 0x410505
mov dword [rbp + 0x20], r15d
mov dword [rbp + 0x58], 0
mov dword [rbp + 0x8c], 0
mov rax, qword [rbp + 0x398]
mov rcx, qword [rbp + 0x78]
lea rdx, [rax + 1]
lea eax, [r15 - 1]
mov r8d, eax
mov qword [rbp + 0x10], rdx
mov dword [rbp + 0x6c], eax
call fcn.00428c80
mov esi, dword [rbp + 0x88]
mov edx, dword [r14 + 0x70]
mov qword [rbp + 0x28], rsp
lea eax, [rsi + r13]
mov dword [rbp + 0x30], eax
imul eax, edx
cdqe
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
mov eax, dword [r14 + 0xac]
mov r8d, esi
imul r8d, edx
lea r12, [rsp + 0x70]
sub eax, esi
mov rcx, r12
imul eax, edx
movsxd r8, r8d
shl r8, 2
cdqe
lea rdx, [r14 + rax*4 + 0x37cc]
call sub.msvcrt.dll_memcpy
cmp dword [r14 + 0x378c], 0x3ea
je 0x412455
mov rax, qword [rbp + 0x38]
mov ecx, dword [rax + 8]
mov edx, dword [r14 + 0x3774]
sub ecx, edx
movsxd rcx, ecx
imul rcx, rcx, 0x3d7
sar rcx, 0x10
add ecx, edx
mov dword [r14 + 0x3774], ecx
sar ecx, 8
call fcn.004347c0
cmp dword [r14 + 0x6c], 0x800
je 0x411420
pxor xmm0, xmm0
mov ecx, dword [r14 + 0x70]
movss xmm3, dword [0x0046c204]
cvtsi2ss xmm0, dword [r14 + 0x90]
mov eax, dword [rbp + 0x88]
movss xmm6, dword [0x0046c164]
imul eax, ecx
movaps xmm4, xmm6
divss xmm3, xmm0
movss xmm0, dword [r14 + 0x377c]
cdqe
lea rdx, [r12 + rax*4]
subss xmm4, xmm3
cmp ecx, 2
je 0x412150
movss xmm5, dword [0x0046c160]
mov rcx, qword [rbp + 0x388]
xor eax, eax
movss xmm1, dword [rcx + rax*4]
movaps xmm2, xmm1
mulss xmm1, xmm3
subss xmm2, xmm0
mulss xmm0, xmm4
movss dword [rdx + rax*4], xmm2
add rax, 1
addss xmm1, xmm5
addss xmm0, xmm1
cmp r13d, eax
jg 0x410632
movss dword [r14 + 0x377c], xmm0
mov eax, dword [rbp + 0x3e0]
test eax, eax
jne 0x411ab0
mov r10d, dword [r14 + 0x378c]
cmp r10d, 0x3ea
je 0x411550
mov r11d, dword [r14 + 0x70]
mov qword [rbp + 8], rsp
mov eax, r11d
imul eax, r13d
cdqe
lea rax, [rax + rax + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
mov eax, dword [rbp + 0xc0]
mov dword [rbp + 0x24], 0xffffffff
lea rsi, [rsp + 0x70]
test eax, eax
je 0x4106d6
xor eax, eax
movss xmm0, dword [rbp + 0xe4]
comiss xmm0, dword [0x0046c1c4]
setae al
mov dword [rbp + 0x24], eax
mov eax, dword [rbp + 0x60]
shl ebx, 3
imul eax, r13d
cdq
idiv ebx
mov ebx, dword [rbp + 0x20]
cmp eax, ebx
cmovle ebx, eax
mov eax, dword [r14 + 0x376c]
sub ebx, 1
mov dword [rbp + 0x20], eax
mov eax, dword [r14 + 0x90]
imul ebx, edi
mov dword [rbp + 0x60], eax
mov rax, qword [r14 + 0x37b0]
shl ebx, 3
mov qword [rbp + 0x18], rax
cmp r10d, 0x3e9
je 0x4120a0
mov dword [r14 + 0x24], ebx
movaps xmm7, xmm6
cmp qword [rbp + 0x18], 0
je 0x410890
mov eax, dword [r14 + 0x94]
mov dword [rbp + 4], eax
mov eax, dword [rbp + 4]
test eax, eax
je 0x410890
mov ebx, dword [r14 + 0xb0]
test ebx, ebx
jne 0x410890
mov ebx, dword [r14 + 0x379c]
cmp ebx, 0x44d
je 0x412a6c
cmp ebx, 0x44e
je 0x412b49
movss xmm4, dword [0x0046c1a4]
movss xmm5, dword [0x0046c1a8]
mov eax, 0x11
test r11d, r11d
jle 0x412c25
lea ecx, [rax - 1]
lea eax, [r11 - 1]
mov r9, qword [rbp + 0x18]
pxor xmm3, xmm3
lea r8, [rax + rax*4]
movss xmm2, dword [0x0046c16c]
pxor xmm1, xmm1
lea rax, [rax + r8*4]
lea rdx, [r9 + rcx*4 + 4]
add rax, rcx
not rcx
lea r8, [r9 + rax*4 + 0x58]
shl rcx, 2
nop word [rax + rax]
lea rax, [rcx + rdx]
jmp 0x410802
comiss xmm0, dword [0x0046c1b8]
ja 0x411d00
movss xmm0, dword [0x0046c1b8]
add rax, 4
addss xmm1, xmm0
cmp rax, rdx
je 0x410820
movss xmm0, dword [rax]
comiss xmm2, xmm0
ja 0x4107e0
movss xmm0, dword [0x0046c1b4]
add rax, 4
addss xmm1, xmm0
cmp rax, rdx
jne 0x410802
add rdx, 0x54
cmp r8, rdx
jne 0x4107d0
divss xmm1, xmm5
mov r9d, dword [r14 + 0x24]
mov edx, 0x55555556
mov r8d, r9d
neg r8d
add r8d, r8d
mov eax, r8d
sar r8d, 0x1f
imul edx
sub edx, r8d
movaps xmm0, xmm1
pxor xmm1, xmm1
cvtsi2ss xmm1, r11d
mulss xmm0, xmm1
addss xmm0, dword [0x0046c218]
mulss xmm0, xmm4
cvttss2si ecx, xmm0
cmp edx, ecx
cmovl edx, ecx
sub ebx, 0x450
cmp ebx, 1
jbe 0x412a4d
add edx, r9d
mov dword [r14 + 0x24], edx
nop word cs:[rax + rax]
imul eax, r13d, 0x3e8
mov dword [r14 + 8], r11d
cdq
idiv dword [rbp + 0x60]
cmp dword [rbp + 0x68], 0x44d
mov dword [r14 + 0x20], eax
mov eax, dword [rbp + 0x20]
mov dword [r14 + 0xc], eax
je 0x412090
cmp dword [rbp + 0x68], 0x44e
je 0x411cdb
cmp r10d, 0x3e9
je 0x4108da
cmp dword [rbp + 0x68], 0x44f
jne 0x412d89
mov dword [r14 + 0x1c], 0x3e80
cmp r10d, 0x3e9
je 0x412012
movabs rax, 0x1f4000003e80
mov qword [r14 + 0x14], rax
cmp r10d, 0x3e8
jne 0x4123c0
cmp edi, 0x32
jle 0x410926
mov ecx, dword [rbp + 0x48]
mov edx, 0x55555556
shl ecx, 4
mov eax, ecx
sar ecx, 0x1f
imul edx
sub edx, ecx
mov dword [rbp + 0x44], edx
mov ebx, dword [rbp + 0x44]
cmp ebx, 0x1f3f
jg 0x410970
cmp dword [r14 + 0x1c], 0x2ee0
mov eax, 0x2ee0
cmovle eax, dword [r14 + 0x1c]
mov dword [r14 + 0x14], 0x2ee0
mov dword [r14 + 0x1c], eax
cmp ebx, 0x1b57
jg 0x410970
cmp eax, 0x1f40
mov edx, 0x1f40
mov dword [r14 + 0x14], 0x1f40
cmovg eax, edx
mov dword [r14 + 0x1c], eax
mov edx, dword [r14 + 0x94]
xor eax, eax
test edx, edx
sete al
mov dword [r14 + 0x3c], eax
mov eax, dword [rbp + 0x6c]
shl eax, 3
cmp dword [rbp + 0x58], 1
jle 0x4109a4
mov ebx, dword [rbp + 0x8c]
test ebx, ebx
je 0x4109a4
mov ebx, dword [rbp + 0x58]
lea edx, [rbx*8 + 1]
sub eax, edx
mov dword [r14 + 0x40], eax
mov r9d, dword [rbp + 0x40]
lea r10, [r14 + 8]
test r9d, r9d
jne 0x4121e0
mov eax, dword [r14 + 0x70]
mov edx, r13d
imul edx, eax
test edx, edx
jle 0x411d12
imul eax, dword [rbp + 0x88]
lea r8d, [rdx - 1]
movss xmm1, dword [0x0046c168]
xor edx, edx
movss xmm2, dword [0x0046c1c0]
cdqe
lea rcx, [r12 + rax*4]
jmp 0x410a0c
minss xmm0, xmm2
cvtss2si eax, xmm0
mov word [rsi + rdx*2], ax
lea rax, [rdx + 1]
cmp rdx, r8
je 0x411d12
mov rdx, rax
movss xmm0, dword [rcx + rdx*4]
mulss xmm0, xmm1
comiss xmm0, dword [0x0046c1bc]
ja 0x4109f0
movss xmm0, dword [0x0046c1bc]
jmp 0x4109f4
cmp eax, 0xe
jg 0x410ed0
mov dword [r14 + 0x46cc], 0x44e
mov dword [rbp + 0x70], 0
jmp 0x40fa03
add ecx, r9d
jmp 0x40fcfe
cmp ebx, 0x5dc0
jg 0x40fdb7
cmp dword [r14 + 0x379c], 0x450
jle 0x412660
mov dword [r14 + 0x379c], 0x450
cmp ebx, 0x3e80
jg 0x40fdb7
mov dword [r14 + 0x379c], 0x44f
cmp ebx, 0x2ee0
jg 0x40fdb7
mov dword [r14 + 0x379c], 0x44e
cmp ebx, 0x1f40
jg 0x40fdb7
mov dword [r14 + 0x379c], 0x44d
jmp 0x40fdb7
mov eax, dword [r14 + 0x3790]
test eax, eax
jne 0x411130
movss xmm0, dword [rbp + 0xd4]
subss xmm6, xmm0
mulss xmm6, dword [0x0046c1cc]
movsd xmm2, qword [0x0046c1e0]
movsd xmm3, qword [0x0046c1d8]
cvtss2sd xmm6, xmm6
addsd xmm6, qword [0x0046c1d0]
movapd xmm1, xmm6
movapd xmm0, xmm6
andpd xmm1, xmm2
ucomisd xmm3, xmm1
jbe 0x410b5a
cvttsd2si rax, xmm6
pxor xmm1, xmm1
movsd xmm3, qword [0x0046c1f0]
andnpd xmm2, xmm6
cvtsi2sd xmm1, rax
movapd xmm5, xmm1
cmpnlesd xmm5, xmm6
movapd xmm0, xmm5
andpd xmm0, xmm3
subsd xmm1, xmm0
movapd xmm0, xmm1
orpd xmm0, xmm2
cvttsd2si eax, xmm0
mov dword [r14 + 0x8c], eax
jmp 0x4102bb
cmp ecx, 0x3e8
jne 0x410bba
lea r8d, [rbx + rbx]
mov ecx, 0x51eb851f
mov eax, r8d
imul ecx
mov eax, r8d
sar eax, 0x1f
sar edx, 3
sub edx, eax
cmp edx, r13d
je 0x411ce8
add r8d, ebx
mov eax, r8d
sar r8d, 0x1f
imul ecx
mov eax, edx
sar edx, 4
sar eax, 3
sub edx, r8d
sub eax, r8d
cmp eax, r13d
cmove esi, edx
mov eax, r13d
cdq
idiv esi
mov r13d, eax
mov eax, dword [rbp + 0x6c]
cmp eax, 0xffffffff
je 0x410bdc
mov dword [r14 + 0x1dd4], eax
mov eax, dword [rbp + 0x60]
mov dword [r14 + 0x1dd8], eax
mov r8d, dword [r14 + 0x94]
lea ecx, [r13 + r13]
cmp r13d, 2
mov eax, 3
mov qword [rbp + 0x70], rsp
cmove ecx, eax
test r8d, r8d
jne 0x410c40
cmp dword [r14 + 0xa4], 0xffffffff
je 0x410c40
mov eax, dword [r14 + 0xa0]
mov r9d, esi
imul r9d, r13d
lea r8d, [rax + rax*2]
lea eax, [rbx + rbx*2]
shl eax, 3
cdq
idiv r9d
mov r9d, eax
mov eax, r8d
cdq
idiv r9d
cmp dword [rbp + 0x3a0], eax
cmovle eax, dword [rbp + 0x3a0]
mov dword [rbp + 0x3a0], eax
mov eax, dword [rbp + 0x3a0]
mov edi, 0x4fb
sub eax, ecx
cdq
idiv r13d
cmp eax, 0x4fb
cmovg eax, edi
lea edi, [rax + 1]
mov eax, r13d
imul eax, edi
cdqe
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov rcx, qword [rbp + 0x78]
sub rsp, rax
call fcn.00416210
mov eax, dword [r14 + 0x88]
mov ecx, dword [r14 + 0x44]
lea rbx, [rsp + 0x70]
mov dword [rbp + 0x6c], eax
mov eax, dword [r14 + 0x80]
mov dword [rbp + 0x5c], ecx
mov dword [rbp + 0x68], eax
mov eax, dword [r14 + 0x78]
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x378c]
mov dword [r14 + 0x88], eax
mov eax, dword [r14 + 0x379c]
mov dword [r14 + 0x80], eax
mov eax, dword [r14 + 0x376c]
mov dword [r14 + 0x78], eax
test ecx, ecx
je 0x4111a0
mov dword [r14 + 0x78], 1
test r13d, r13d
jle 0x411326
movzx eax, byte [rbp + 0x50]
xor r15d, r15d
lea r12d, [r13 - 1]
and eax, 1
mov byte [rbp + 0x88], al
movsxd rax, edi
mov qword [rbp + 0x80], rax
mov eax, r13d
mov r13d, r15d
mov r15, r14
mov r14d, eax
jmp 0x410db6
mov eax, dword [r15 + 0x70]
mov rcx, qword [rbp + 0x388]
mov r8d, esi
mov r9, rbx
imul eax, esi
imul eax, r13d
cdqe
lea rdx, [rcx + rax*4]
mov eax, dword [rbp + 0x3e0]
mov rcx, r15
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov eax, dword [rbp + 0x8c]
mov dword [rsp + 0x20], edi
mov dword [rsp + 0x28], eax
call fcn.0040f8b0
mov r8d, eax
test eax, eax
js 0x411020
mov rcx, qword [rbp + 0x78]
mov rdx, rbx
call fcn.00416250
test eax, eax
js 0x411020
add r13d, 1
add rbx, qword [rbp + 0x80]
cmp r14d, r13d
je 0x411320
xor eax, eax
cmp r13d, r12d
mov dword [r15 + 0x44], 0
setl al
mov dword [r15 + 0x46d8], eax
jne 0x410d13
cmp byte [rbp + 0x88], 0
je 0x410d13
mov dword [r15 + 0x88], 0x3ea
jmp 0x410d13
mov eax, dword [r14 + 0x378c]
mov ecx, dword [rbp + 0x58]
mov dword [rbp + 0x40], eax
test ecx, ecx
jle 0x411167
cmp eax, 0x3ea
je 0x411150
xor eax, eax
cmp ecx, 0x3ea
sete al
mov dword [rbp + 0x34], eax
mov dword [rbp + 0x28], eax
movsxd rax, dword [rbp + 0x78]
add rax, r14
mov qword [rbp + 0x38], rax
cmp r11d, 1
je 0x410f0c
mov r9d, r12d
mov r8d, edi
mov edx, r11d
mov ecx, r10d
mov dword [r14 + 0x44], 0
mov dword [rsp + 0x30], esi
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.0040eb70
mov dword [rbp + 0x54], eax
cmp dword [rbp + 0x58], 0x3ea
je 0x411eb0
lea rax, [rbp + 0x100]
mov dword [rbp + 0x40], 0
mov r12d, dword [r14 + 0x378c]
mov qword [rbp + 0x78], rax
mov r11d, dword [r14 + 0x37a8]
cmp r12d, 0x3ea
mov ebx, dword [r14 + 0x90]
mov esi, dword [r14 + 0x28]
setne byte [rbp + 0x58]
test r11d, r11d
jne 0x40fc60
mov eax, dword [r14 + 0x54]
test eax, eax
jne 0x40fc60
mov eax, dword [r14 + 0x379c]
jmp 0x40fd23
cmp eax, 0x10
jg 0x4112d4
mov dword [r14 + 0x46cc], 0x44f
mov dword [rbp + 0x70], 0
jmp 0x40fa03
mov dword [rbp + 0x40], 0x3ea
mov dword [rbp + 0x50], 0
mov dword [rbp + 0x34], 0
mov dword [rbp + 0x28], 0
cmp dword [r14 + 0x3794], 2
je 0x411fa0
mov r9d, r12d
mov r8d, edi
mov edx, r11d
mov ecx, r10d
mov dword [r14 + 0x44], 0
mov dword [rsp + 0x30], esi
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0x40]
mov dword [rsp + 0x20], eax
call fcn.0040eb70
cmp dword [rbp + 0x40], 0x3ea
mov dword [rbp + 0x54], eax
jne 0x410e64
jmp 0x40fc3d
cmp dword [r14 + 0x379c], 0x44e
jne 0x410f78
mov dword [r14 + 0x379c], 0x44f
mov r8d, dword [r14 + 0xb0]
test r8d, r8d
je 0x411410
mov dword [r14 + 0x379c], 0x44d
mov dword [rbp + 0x68], 0x44d
jmp 0x41038c
cmp r11d, 2
jne 0x40fb5d
mov ecx, dword [rbp + 0x68]
mov edx, ecx
imul edx, ecx
imul edx, edx, 0x7d0
sar edx, 0xe
cmp dword [r14 + 0x376c], 2
lea ecx, [rdx + 0x4650]
jne 0x410fd1
lea ecx, [rdx + 0x3e80]
cmp ecx, eax
mov eax, 1
mov ecx, r10d
mov r9d, r12d
cmovge r11d, eax
mov r8d, edi
mov dword [r14 + 0x376c], r11d
mov edx, r11d
mov dword [rsp + 0x30], esi
mov eax, dword [rbp + 0x54]
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x28], eax
mov dword [rbp + 0x40], r11d
mov dword [rbp + 0x58], r10d
call fcn.0040eb70
mov r10d, dword [rbp + 0x58]
mov r11d, dword [rbp + 0x40]
jmp 0x40fb64
mov eax, 0xfffffffd
mov rsp, qword [rbp + 0x70]
jmp 0x40ff1e
lea r8d, [rbx + rbx*2]
mov eax, r8d
sar r8d, 0x1f
imul r9d
sar edx, 4
sub edx, r8d
cmp edx, r13d
jl 0x410b70
mov eax, dword [r14 + 0xa0]
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x37a4]
test eax, eax
je 0x4104b0
mov dword [r14 + 0x37a4], 0
cmp ecx, 0x3ea
jne 0x410405
mov dword [rbp + 0x20], r15d
mov dword [rbp + 0x34], 1
mov dword [rbp + 0x40], 2
mov dword [rbp + 0x58], 0
mov dword [rbp + 0x8c], 0
jmp 0x410505
cmp eax, 0x44f
setle al
cmp ecx, 0x3e9
jne 0x41038c
test al, al
je 0x41038c
mov ebx, dword [r14 + 0x90]
mov ecx, 0x51eb851f
mov dword [r14 + 0x378c], 0x3e8
mov eax, ebx
imul ecx
mov eax, ebx
sar eax, 0x1f
sar edx, 4
mov esi, edx
sub esi, eax
cmp esi, r13d
jl 0x4103bf
lea r8d, [rbx + rbx*2]
mov eax, r8d
sar r8d, 0x1f
imul ecx
mov ecx, edx
sar ecx, 4
sub ecx, r8d
cmp r13d, ecx
jle 0x4103dc
jmp 0x410b78
cmp eax, 0x44e
jne 0x412c88
mov eax, 0x44f
jmp 0x40fd15
movss xmm0, dword [rbp + 0xdc]
cmp eax, 0x3ea
je 0x410ae9
movss xmm0, dword [rbp + 0xd8]
jmp 0x410ae9
cmp dword [rbp + 0x58], 0x3ea
jne 0x411c40
mov eax, dword [r14 + 0x378c]
mov dword [rbp + 0x40], eax
movsxd rax, dword [rbp + 0x78]
mov dword [rbp + 0x50], 0
mov dword [rbp + 0x34], 0
add rax, r14
mov dword [rbp + 0x28], 0
mov qword [rbp + 0x38], rax
cmp r11d, 1
jne 0x410f1a
jmp 0x410f0c
mov dword [r14 + 0x3794], eax
jmp 0x410cdb
movss xmm6, dword [0x0046c164]
movss xmm1, dword [0x0046c1f8]
mov r9d, dword [rbp + 0x68]
subss xmm6, xmm0
mov r8d, r9d
imul r8d, r9d
movaps xmm2, xmm6
mulss xmm2, xmm1
mulss xmm6, dword [0x0046c1fc]
mulss xmm1, xmm0
mulss xmm0, dword [0x0046c200]
addss xmm1, xmm2
addss xmm6, xmm0
cvttss2si ecx, xmm1
cvttss2si edx, xmm6
sub edx, ecx
imul edx, r8d
sar edx, 0xe
add edx, ecx
cmp dword [rbp + 0x50], 0x800
lea ecx, [rdx + 0x1f40]
cmove edx, ecx
cmp dword [rbp + 0x58], 0x3ea
je 0x411cd0
mov r8d, dword [rbp + 0x58]
lea ecx, [rdx + 0xfa0]
test r8d, r8d
cmovg edx, ecx
cmp edx, eax
setle al
movzx eax, al
lea eax, [rax + rax + 0x3e8]
mov dword [r14 + 0x378c], eax
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x41126a
mov eax, pe_nt_image_headers64
sub eax, dword [rbp + 0x68]
sar eax, 4
cmp esi, eax
jle 0x41126a
mov dword [r14 + 0x378c], 0x3e8
mov eax, dword [r14 + 0xb8]
test eax, eax
je 0x411e32
mov eax, dword [rbp + 0x70]
or eax, dword [rbp + 0xc0]
jne 0x411e32
cmp dword [rbp + 0x68], 0x64
mov dword [r14 + 0x38], 1
jle 0x4112a1
mov dword [r14 + 0x378c], 0x3e8
cmp edi, 0x32
mov edx, 0x1770
mov eax, 0x2328
cmovle eax, edx
lea ecx, [rbx*8]
imul eax, r13d
cdq
idiv ecx
cmp eax, r15d
jg 0x40fbb1
mov edx, dword [r14 + 0x378c]
jmp 0x40fb91
cmp eax, 0x12
jg 0x411c83
mov dword [r14 + 0x46cc], 0x450
mov dword [rbp + 0x70], 0
jmp 0x40fa03
mov eax, 1
jmp 0x41032a
cmp dword [rbp + 0x50], 0x800
mov ecx, 0x30
mov edx, 0x73
cmovne edx, ecx
mov dword [rbp + 0x68], edx
jmp 0x40fb40
mov r13d, r14d
mov r14, r15
mov edx, dword [r14 + 0x94]
xor eax, eax
mov r8d, r13d
mov dword [rsp + 0x28], 0
test edx, edx
sete al
xor edx, edx
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x3a0]
mov dword [rsp + 0x20], eax
mov r9, qword [rbp + 0x398]
mov rcx, qword [rbp + 0x78]
call fcn.00416270
test eax, eax
js 0x411020
mov edi, dword [rbp + 0x6c]
mov dword [r14 + 0x88], edi
mov edi, dword [rbp + 0x68]
mov dword [r14 + 0x80], edi
mov edi, dword [rbp + 0x60]
mov dword [r14 + 0x78], edi
mov edi, dword [rbp + 0x5c]
mov dword [r14 + 0x44], edi
jmp 0x411025
mov r8d, dword [r14 + 0x376c]
imul ecx, r8d, 0x4650
cmp ecx, dword [rbp + 0x54]
jge 0x411cb5
imul ecx, r8d, 0x5dc0
cmp ecx, dword [rbp + 0x54]
jl 0x4113bc
mov ecx, 0x44e
test dl, dl
jne 0x4113e5
imul r9d, r8d, 0x7530
mov ebx, dword [rbp + 0x54]
mov ecx, 0x44f
cmp r9d, ebx
jge 0x4113e5
imul r8d, r8d, 0xabe0
xor ecx, ecx
cmp r8d, ebx
setl cl
add ecx, 0x450
cmp eax, ecx
cmovl eax, ecx
cmp dword [r14 + 0x379c], eax
mov dword [r14 + 0x46cc], eax
cmovle eax, dword [r14 + 0x379c]
mov dword [r14 + 0x379c], eax
jmp 0x40fdd8
mov eax, dword [r14 + 0x379c]
mov dword [rbp + 0x68], eax
jmp 0x41038c
mov r10d, dword [r14 + 0x70]
mov edx, dword [rbp + 0x88]
cwde
mov r9d, dword [r14 + 0x90]
imul ecx, eax, 0x9a7
imul edx, r10d
mov eax, r9d
sar r9d, 0x1f
movsxd rdx, edx
lea rsi, [r12 + rdx*4]
mov edx, 0x10624dd3
imul edx
mov eax, ecx
mov ecx, 0xf0000000
sar edx, 6
sub edx, r9d
lea r9, [r14 + 0x377c]
mov r8d, edx
cdq
idiv r8d
imul r8d, eax, 0xfffffe29
sub ecx, r8d
lea edx, [r8 + 0x10000000]
lea r8, [rbp + 0xac]
add ecx, ecx
mov dword [rbp + 0xb4], edx
mov dword [rbp + 0xb8], ecx
movsxd rcx, eax
mov rax, rcx
mov dword [rbp + 0xbc], edx
sar edx, 6
imul rax, rcx
movsxd rdx, edx
mov qword [rbp + 0x18], r8
sar rax, 0x10
sub eax, 0x800000
cdqe
imul rax, rdx
imul rdx, rdx
sar rax, 0x10
sar rdx, 0x10
mov dword [rbp + 0xac], eax
mov dword [rbp + 0xb0], edx
lea rdx, [rbp + 0xb4]
mov qword [rbp + 8], rdx
mov dword [rsp + 0x30], r10d
mov dword [rbp + 0x24], r10d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rsi
mov rcx, qword [rbp + 0x388]
call fcn.0040e7c0
mov r10d, dword [rbp + 0x24]
movss xmm6, dword [0x0046c164]
cmp r10d, 2
jne 0x410665
mov rax, qword [rbp + 0x388]
mov dword [rsp + 0x30], 2
lea r9, [r14 + 0x3784]
mov dword [rsp + 0x28], r13d
lea rcx, [rax + 4]
lea rax, [rsi + 4]
mov qword [rsp + 0x20], rax
mov r8, qword [rbp + 0x18]
mov rdx, qword [rbp + 8]
call fcn.0040e7c0
jmp 0x410665
movzx eax, byte [rbp + 0x34]
movaps xmm7, xmm6
and eax, 1
mov byte [rbp + 0x44], al
mov eax, dword [rbp + 0x68]
mov r8d, 0x15
sub eax, 0x44d
cmp eax, 3
jbe 0x411b30
mov rsi, qword [rbp + 0x80]
mov edx, 0x271c
mov rcx, rsi
call fcn.004251d0
mov r8d, dword [r14 + 0x376c]
mov edx, 0x2718
mov rcx, rsi
call fcn.004251d0
mov r8d, 0xffffffff
mov edx, 0xfa2
mov rcx, rsi
call fcn.004251d0
cmp dword [r14 + 0x378c], 0x3e8
jne 0x411b40
mov esi, dword [r14 + 0x70]
mov ecx, dword [r14 + 0x90]
mov edx, 0x51eb851f
mov qword [rbp + 0x60], rsp
imul ecx, esi
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 7
sub edx, ecx
movsxd rax, edx
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov ebx, dword [r14 + 0xac]
sub rsp, rax
lea rax, [rsp + 0x70]
mov qword [rbp + 0x48], rax
mov edi, dword [rbp + 0x30]
mov eax, ebx
lea rcx, [r14 + 0x37cc]
sub eax, edi
imul eax, esi
test eax, eax
jle 0x411f50
sub ebx, r13d
sub ebx, dword [rbp + 0x88]
mov eax, r13d
imul ebx, esi
imul eax, esi
imul esi, edi
movsxd rbx, ebx
shl rbx, 2
cdqe
lea rdx, [r14 + rax*4 + 0x37cc]
mov r8, rbx
call sub.msvcrt.dll_memmove
movsxd r8, esi
lea rcx, [r14 + rbx + 0x37cc]
mov rdx, r12
shl r8, 2
call sub.msvcrt.dll_memcpy
movss xmm2, dword [r14 + 0x3778]
comiss xmm6, xmm2
ja 0x411df0
comiss xmm6, xmm7
ja 0x411df0
mov ecx, dword [r14 + 0x378c]
mov r8, qword [r14 + 0x37b0]
movss dword [r14 + 0x3778], xmm7
cmp ecx, 0x3e9
je 0x412361
cmp dword [rbp + 0x54], 0x7d00
jle 0x411f80
mov dword [r14 + 0x5c], 0x4000
test r8, r8
je 0x412480
cmp ecx, 0x3ea
je 0x411712
bsr eax, dword [rbp + 0x120]
mov edx, dword [rbp + 0x118]
mov edi, dword [rbp + 0x6c]
xor eax, 0x1f
lea eax, [rax + rdx - 0x20]
lea edx, [rdi*8]
cmp ecx, 0x3e9
je 0x412396
add eax, 0x11
cmp eax, edx
jg 0x411712
mov eax, dword [rbp + 0x8c]
test eax, eax
jne 0x412953
mov ecx, dword [r14 + 0x378c]
mov dword [r14 + 0x37a4], 0
xor edi, edi
mov dword [rbp + 0x8c], 0
cmp ecx, 0x3ea
je 0x412340
cmp ecx, 0x3e8
jne 0x412470
bsr eax, dword [rbp + 0x120]
mov edx, dword [rbp + 0x118]
mov rcx, qword [rbp + 0x78]
xor eax, 0x1f
lea eax, [rax + rdx - 0x19]
sar eax, 3
mov esi, eax
call fcn.004291b0
mov ebx, esi
mov dword [rbp + 0x88], 0x11
mov eax, dword [rbp + 0x8c]
test eax, eax
jne 0x411786
cmp dword [r14 + 0x378c], 0x3e8
je 0x4117af
mov rcx, qword [rbp + 0x80]
lea r8, [rbp + 0xc0]
mov edx, 0x2726
call fcn.004251d0
cmp dword [r14 + 0x378c], 0x3e9
je 0x412833
cmp byte [rbp + 0x5c], 0
je 0x41186e
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0x271a
call fcn.004251d0
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0xfa6
call fcn.004251d0
mov r8d, 0xffffffff
mov edx, 0xfa2
mov rcx, qword [rbp + 0x80]
call fcn.004251d0
mov ecx, dword [r14 + 0x90]
mov dword [rsp + 0x20], edi
movsxd r9, ebx
mov qword [rsp + 0x28], 0
mov r8d, 0x51eb851f
mov eax, ecx
sar ecx, 0x1f
imul r8d
mov rax, qword [rbp + 0x10]
add r9, rax
mov r8d, edx
mov rdx, r12
sar r8d, 6
sub r8d, ecx
mov rcx, qword [rbp + 0x80]
call fcn.0041f550
test eax, eax
js 0x411ea0
mov rcx, qword [rbp + 0x80]
mov edx, 0xfbf
lea r8, [rbp + 0x9c]
call fcn.004251d0
mov rcx, qword [rbp + 0x80]
mov edx, 0xfbc
call fcn.004251d0
mov r8d, dword [rbp + 0x88]
mov rcx, qword [rbp + 0x80]
mov edx, 0x271a
call fcn.004251d0
mov eax, dword [r14 + 0x378c]
cmp eax, 0x3e8
je 0x4119a0
mov edx, dword [r14 + 0x3790]
cmp eax, edx
je 0x411910
test edx, edx
jle 0x411910
mov rcx, qword [rbp + 0x80]
mov edx, 0xfbc
call fcn.004251d0
mov ecx, dword [r14 + 0x90]
mov edx, 0x51eb851f
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 2
lea r9, [rbp + 0xb4]
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 7
mov r8d, edx
mov rdx, qword [rbp + 0x48]
sub r8d, ecx
mov rcx, qword [rbp + 0x80]
call fcn.0041f550
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0x2712
call fcn.004251d0
bsr eax, dword [rbp + 0x120]
mov ecx, dword [rbp + 0x118]
lea edx, [rbx*8]
xor eax, 0x1f
lea eax, [rax + rcx - 0x20]
cmp edx, eax
jl 0x4119a0
cmp byte [rbp + 0x5c], 0
mov r8d, dword [r14 + 0x94]
je 0x411e5c
cmp dword [r14 + 0x378c], 0x3e9
je 0x412b18
mov rsi, qword [rbp + 0x80]
mov edx, 0xfa6
mov rcx, rsi
call fcn.004251d0
mov rax, qword [rbp + 0x78]
mov dword [rsp + 0x20], ebx
mov rcx, rsi
xor r9d, r9d
mov r8d, r13d
mov rdx, r12
mov qword [rsp + 0x28], rax
call fcn.0041f550
mov esi, eax
test eax, eax
js 0x411ea0
cmp dword [r14 + 0x378c], 0x3e9
je 0x412bf7
nop
mov eax, dword [rbp + 0x34]
mov ecx, dword [r14 + 0x90]
xor eax, 1
test dword [rbp + 0x8c], eax
jne 0x4126ea
mov eax, ecx
mov r9d, dword [r14 + 0x376c]
mov ecx, dword [r14 + 0x378c]
cdq
mov r8d, dword [rbp + 0x68]
idiv r13d
mov edx, eax
call fcn.0040e720
mov rbx, qword [rbp + 0x398]
mov edx, dword [rbp + 0x9c]
mov r11d, dword [rbp + 0x50]
mov byte [rbx], al
mov eax, dword [rbp + 0x120]
xor edx, eax
mov dword [r14 + 0x46dc], edx
mov edx, 0x3ea
test r11d, r11d
jne 0x411a0b
mov edx, dword [r14 + 0x378c]
mov dword [r14 + 0x3790], edx
mov r10d, dword [r14 + 0xb8]
mov edx, dword [r14 + 0x376c]
mov dword [r14 + 0x3798], r13d
mov dword [r14 + 0x37a8], 0
mov dword [r14 + 0x3794], edx
test r10d, r10d
je 0x411a4d
mov ebx, dword [rbp + 0x70]
or ebx, dword [rbp + 0xc0]
jne 0x412a0f
bsr eax, eax
mov edx, dword [rbp + 0x6c]
mov ecx, dword [rbp + 0x118]
xor eax, 0x1f
shl edx, 3
lea eax, [rax + rcx - 0x20]
cmp edx, eax
jge 0x4125e0
mov rax, qword [rbp + 0x398]
mov esi, 1
mov byte [rax + 1], 0
mov dword [r14 + 0x46dc], 0
mov ecx, dword [r14 + 0x94]
lea eax, [rsi + rdi + 1]
test ecx, ecx
je 0x41285b
mov rsp, qword [rbp + 0x60]
mov rsp, qword [rbp + 0x28]
jmp 0x40ff1e
mov r8d, dword [r14 + 0x70]
mov eax, dword [rbp + 0x88]
imul eax, r8d
imul r8d, r13d
cdqe
lea rcx, [r12 + rax*4]
mov rdx, rcx
call fcn.0040bed0
movss xmm1, dword [0x0046c174]
comiss xmm1, xmm0
jbe 0x411ae8
ucomiss xmm0, xmm0
jp 0x411ae8
je 0x410673
mov eax, dword [r14 + 0x70]
xor edx, edx
mov r8d, eax
imul eax, dword [rbp + 0x88]
imul r8d, r13d
cdqe
movsxd r8, r8d
lea rcx, [r12 + rax*4]
shl r8, 2
call sub.msvcrt.dll_memset
mov qword [r14 + 0x377c], 0
mov qword [r14 + 0x3784], 0
jmp 0x410673
lea rdx, [0x0046bfd0]
mov r8d, dword [rdx + rax*4]
jmp 0x411574
xor r8d, r8d
mov edx, 0xfa6
mov rcx, rsi
call fcn.004251d0
mov eax, dword [r14 + 0x4c]
xor r8d, r8d
mov rcx, rsi
mov edx, 0x2712
test eax, eax
sete r8b
add r8d, r8d
call fcn.004251d0
mov ecx, dword [r14 + 0x378c]
cmp ecx, 0x3e9
je 0x4128b6
mov eax, dword [r14 + 0x94]
test eax, eax
jne 0x4129c1
mov esi, dword [r14 + 0x70]
mov r9d, dword [r14 + 0x90]
mov edx, 0x51eb851f
mov qword [rbp + 0x60], rsp
mov r11d, esi
imul r11d, r9d
mov eax, r11d
sar r11d, 0x1f
imul edx
sar edx, 7
sub edx, r11d
movsxd r8, edx
shl r8, 2
lea rax, [r8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov ebx, dword [r14 + 0xac]
sub rsp, rax
lea rax, [rsp + 0x70]
mov qword [rbp + 0x48], rax
cmp ecx, 0x3e8
je 0x41160a
mov eax, dword [r14 + 0x3790]
cmp eax, ecx
je 0x41160a
test eax, eax
jle 0x41160a
mov eax, r9d
mov edx, 0x51eb851f
sar r9d, 0x1f
mov ecx, ebx
imul edx
sub ecx, dword [rbp + 0x88]
sar edx, 7
sub r9d, edx
add ecx, r9d
imul ecx, esi
movsxd rax, ecx
mov rcx, qword [rbp + 0x48]
lea rdx, [r14 + rax*4 + 0x37cc]
call sub.msvcrt.dll_memcpy
jmp 0x41160a
mov eax, ebx
mov edx, 0x51eb851f
imul edx
mov eax, ebx
sar eax, 0x1f
sar edx, 5
sub edx, eax
cmp edx, r13d
jg 0x41115d
mov eax, dword [rbp + 0x58]
mov dword [rbp + 0x50], 1
mov dword [rbp + 0x34], 0
mov dword [r14 + 0x378c], eax
mov dword [rbp + 0x40], eax
mov dword [rbp + 0x28], 1
jmp 0x410e21
mov dword [r14 + 0x46cc], 0x451
mov dword [rbp + 0x70], 0
jmp 0x40fa03
mov ecx, edx
cmp edx, 0x73
mov edx, 0x73
cmovle edx, ecx
mov dword [rbp + 0x68], edx
jmp 0x40fb40
mov ecx, 0x44d
cmp r12d, 0x3ea
jne 0x4113bc
jmp 0x4113e5
sub edx, 0xfa0
jmp 0x411232
mov dword [r14 + 0x1c], 0x2ee0
jmp 0x4108e2
mov eax, ebx
imul ecx
mov eax, ebx
sar eax, 0x1f
sar edx, 3
mov esi, edx
sub esi, eax
jmp 0x410bba
comiss xmm0, xmm3
jbe 0x4107f5
mulss xmm0, xmm2
jmp 0x4107f5
mov eax, dword [rbp + 0x24]
mov r9d, r13d
mov r8, rsi
mov rdx, r10
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x38], eax
lea rax, [rbp + 0xac]
mov qword [rsp + 0x28], rax
mov rax, qword [rbp + 0x78]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbp + 0x38]
call fcn.00430400
test eax, eax
jne 0x412004
mov ecx, dword [r14 + 0x378c]
mov eax, dword [r14 + 0x50]
cmp ecx, 0x3e8
je 0x412683
cmp eax, 0x3e80
jne 0x412d4e
mov r8d, dword [r14 + 0x60]
mov eax, dword [rbp + 0xac]
test r8d, r8d
je 0x411e40
mov edx, dword [r14 + 0x46d8]
test edx, edx
jne 0x411e40
mov dword [r14 + 0x48], 1
mov r9d, dword [r14 + 0x376c]
test eax, eax
je 0x4126b6
mov edx, dword [r14 + 0xa0]
mov r8d, edi
mov ecx, r15d
call fcn.0040ec60
mov byte [rbp + 0x44], 0
test eax, eax
mov dword [rbp + 0x58], eax
setne al
mov dword [rbp + 0x34], 0
mov dword [r14 + 0x37a4], 1
movzx eax, al
mov dword [rbp + 0x8c], eax
mov rsp, qword [rbp + 8]
jmp 0x41155d
mov rax, qword [rbp + 0xa0]
mov edx, dword [r14 + 0x90]
movaps xmm3, xmm7
mov rcx, r12
mov dword [rsp + 0x40], edx
mov rdx, qword [rax + 0x48]
mov qword [rsp + 0x38], rdx
mov edx, dword [r14 + 0x70]
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x30], edx
mov eax, dword [rax + 4]
mov rdx, r12
mov dword [rsp + 0x20], eax
call fcn.0040e8d0
jmp 0x411683
mov dword [r14 + 0x38], 0
jmp 0x4112a1
mov dword [r14 + 0x48], 0
test eax, eax
je 0x4126af
movzx eax, byte [rbp + 0x34]
and eax, 1
mov byte [rbp + 0x44], al
jmp 0x411de4
mov rsi, qword [rbp + 0x80]
mov edx, 0xfa6
mov rcx, rsi
call fcn.004251d0
mov rax, qword [rbp + 0x78]
mov dword [rsp + 0x20], ebx
mov rcx, rsi
xor r9d, r9d
mov r8d, r13d
mov rdx, r12
mov qword [rsp + 0x28], rax
call fcn.0041f550
mov esi, eax
test eax, eax
jns 0x4119a0
nop dword [rax + rax]
mov eax, 0xfffffffd
jmp 0x411a99
lea rax, [rbp + 0x100]
mov edx, dword [r14 + 0xb4]
mov rcx, qword [rbp + 0x38]
mov r8, rax
mov qword [rbp + 0x78], rax
call fcn.004302f0
mov r12d, dword [r14 + 0x378c]
cmp r12d, 0x3ea
je 0x412d67
mov dword [rbp + 0x40], 1
jmp 0x410e8a
mov ebx, dword [r14 + 0x70]
mov rdx, qword [rbp + 0x388]
movss xmm7, dword [0x0046c1c8]
movss xmm8, dword [r14 + 0x46d4]
imul ebx, r13d
mov rcx, rdx
mulss xmm8, xmm7
mov r8d, ebx
call fcn.0040bed0
pxor xmm1, xmm1
cvtsi2ss xmm1, ebx
divss xmm0, xmm1
comiss xmm8, xmm0
jbe 0x41291b
mulss xmm7, dword [r14 + 0x46d4]
movss dword [r14 + 0x46d4], xmm7
jmp 0x410276
mov eax, dword [rbp + 0x30]
mov r8d, ebx
imul r8d, esi
sub eax, ebx
imul esi, eax
movsxd r8, r8d
shl r8, 2
movsxd rsi, esi
lea rdx, [r12 + rsi*4]
call sub.msvcrt.dll_memcpy
jmp 0x411668
cmp dword [rbp + 0x54], 0x3e7f
jg 0x41287c
mov dword [r14 + 0x5c], 0
jmp 0x4116bb
mov eax, dword [r14 + 0x44]
test eax, eax
jne 0x410f1a
cmp dword [rbp + 0x58], 0x3ea
je 0x410f1a
mov eax, dword [rbp + 0x40]
cmp eax, 0x3ea
je 0x410f1a
mov r9d, r12d
mov r8d, edi
mov edx, 2
mov ecx, r10d
mov dword [r14 + 0x44], 1
mov dword [r14 + 0x376c], 2
mov dword [rsp + 0x30], esi
mov esi, dword [rbp + 0x54]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], esi
call fcn.0040eb70
mov dword [rbp + 0x54], eax
jmp 0x410e71
mov eax, 0xfffffffd
mov rsp, qword [rbp + 8]
jmp 0x411a9d
mov r9d, dword [r14 + 0x94]
movabs rax, 0x3e8000003e80
mov qword [r14 + 0x14], rax
xor eax, eax
test r9d, r9d
sete al
cmp dword [rbp + 0x58], 1
mov dword [r14 + 0x3c], eax
mov eax, dword [rbp + 0x6c]
lea ecx, [rax*8]
jle 0x4128a4
mov r10d, dword [rbp + 0x8c]
test r10d, r10d
je 0x4128a4
mov eax, dword [rbp + 0x58]
lea eax, [rax*8 + 1]
sub ecx, eax
sub ecx, 0x14
mov dword [r14 + 0x40], ecx
test r9d, r9d
jne 0x41240b
mov eax, dword [r14 + 0x24]
imul eax, r13d
cdq
idiv dword [rbp + 0x60]
cmp eax, ecx
cmovg eax, ecx
mov dword [r14 + 0x40], eax
jmp 0x4109a8
mov dword [r14 + 0x1c], 0x1f40
jmp 0x4108e2
mov r9d, dword [r14 + 0x94]
imul eax, r13d, 0x32
cmp eax, dword [rbp + 0x60]
mov ecx, ebx
mov eax, dword [rbp + 0x20]
mov dword [rbp - 4], r11d
sete r8b
movaps xmm7, xmm6
mov dword [rbp], r10d
movzx r8d, r8b
mov dword [rbp + 4], r9d
mov dword [rsp + 0x28], eax
mov eax, dword [r14 + 0x34]
mov dword [rsp + 0x20], eax
mov edx, dword [rbp + 0x68]
call fcn.0040ea20
cmp qword [rbp + 0x18], 0
mov r10d, dword [rbp]
mov dword [r14 + 0x24], eax
mov r11d, dword [rbp - 4]
jne 0x41073c
sub eax, ebx
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x0046c208]
cvtss2sd xmm0, xmm0
mulsd xmm0, qword [0x0046c210]
call fcn.00459ac0
mov rax, qword [r14 + 0x37b0]
mov r11d, dword [r14 + 0x70]
cvtsd2ss xmm0, xmm0
mov r10d, dword [r14 + 0x378c]
subss xmm7, xmm0
mov qword [rbp + 0x18], rax
mov eax, dword [r14 + 0x90]
mov dword [rbp + 0x60], eax
mov eax, dword [r14 + 0x376c]
mov dword [rbp + 0x20], eax
jmp 0x410727
movss xmm7, dword [r14 + 0x3784]
movss xmm5, dword [0x0046c160]
xor eax, eax
mov rcx, qword [rbp + 0x388]
nop word [rax + rax]
movss xmm2, dword [rcx + rax*8]
movss xmm1, dword [rcx + rax*8 + 4]
movaps xmm9, xmm2
movaps xmm8, xmm1
mulss xmm2, xmm3
subss xmm9, xmm0
subss xmm8, xmm7
mulss xmm1, xmm3
mulss xmm0, xmm4
mulss xmm7, xmm4
movss dword [rdx + rax*8], xmm9
movss dword [rdx + rax*8 + 4], xmm8
add rax, 1
addss xmm2, xmm5
addss xmm1, xmm5
addss xmm0, xmm2
addss xmm7, xmm1
cmp r13d, eax
jg 0x412170
movss dword [r14 + 0x377c], xmm0
movss dword [r14 + 0x3784], xmm7
jmp 0x410665
mov eax, dword [rbp + 0x60]
mov qword [rbp + 0x48], r10
mov edx, 0x51eb851f
pxor xmm2, xmm2
mov r10d, dword [rbp + 0x60]
mov r8, qword [rbp + 0xa0]
mov dword [rbp + 0xb4], 0
imul edx
mov ecx, dword [r14 + 0xac]
sub ecx, dword [r14 + 0x74]
mov eax, r10d
mov dword [rsp + 0x40], r10d
movss xmm3, dword [0x0046c164]
sar eax, 0x1f
sar edx, 7
mov r9d, eax
sub r9d, edx
sub edx, eax
lea ebx, [rcx + r9]
mov r9, qword [r8 + 0x48]
mov dword [rsp + 0x30], r11d
lea rcx, [r14 + 0x37cc]
imul ebx, r11d
mov dword [rsp + 0x28], edx
mov qword [rsp + 0x38], r9
mov eax, dword [r8 + 4]
movsxd rbx, ebx
mov dword [rsp + 0x20], eax
shl rbx, 2
add rcx, rbx
mov rdx, rcx
call fcn.0040e8d0
xor edx, edx
mov r8, rbx
lea rcx, [r14 + 0x37cc]
call sub.msvcrt.dll_memset
mov r9d, dword [r14 + 0xac]
mov eax, dword [r14 + 0x70]
mov r10, qword [rbp + 0x48]
imul eax, r9d
test eax, eax
jle 0x4122f0
lea ecx, [rax - 1]
xor edx, edx
movss xmm1, dword [0x0046c168]
movss xmm2, dword [0x0046c1c0]
jmp 0x4122c8
minss xmm0, xmm2
cvtss2si eax, xmm0
mov word [rsi + rdx*2], ax
lea rax, [rdx + 1]
cmp rcx, rdx
je 0x4122f0
mov rdx, rax
movss xmm0, dword [r14 + rdx*4 + 0x37cc]
mulss xmm0, xmm1
comiss xmm0, dword [0x0046c1bc]
ja 0x4122b0
movss xmm0, dword [0x0046c1bc]
jmp 0x4122b4
mov eax, dword [rbp + 0x24]
mov rdx, r10
mov r8, rsi
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x40]
mov qword [rsp + 0x20], 0
mov dword [rsp + 0x30], eax
lea rax, [rbp + 0xb4]
mov qword [rsp + 0x28], rax
mov rcx, qword [rbp + 0x38]
mov qword [rbp + 0x60], r10
call fcn.00430400
mov dword [r14 + 0x48], 0
mov r10, qword [rbp + 0x60]
jmp 0x4109b9
mov dword [rbp + 0x88], 0
mov ebx, dword [rbp + 0x6c]
mov rcx, qword [rbp + 0x78]
xor esi, esi
sub ebx, edi
mov edx, ebx
call fcn.00429150
jmp 0x41176f
cmp dword [r14 + 0x376c], 1
je 0x4116a6
test r8, r8
je 0x412480
bsr eax, dword [rbp + 0x120]
mov edx, dword [rbp + 0x118]
mov edi, dword [rbp + 0x6c]
xor eax, 0x1f
lea eax, [rax + rdx - 0x20]
lea edx, [rdi*8]
add eax, 0x25
cmp eax, edx
jg 0x411712
mov edx, dword [rbp + 0x8c]
mov rcx, qword [rbp + 0x78]
mov r8d, 0xc
call fcn.00428e10
jmp 0x4116fd
mov r9d, dword [r14 + 0x94]
xor eax, eax
test r9d, r9d
sete al
mov dword [r14 + 0x3c], eax
mov eax, dword [rbp + 0x6c]
shl eax, 3
cmp dword [rbp + 0x58], 1
jle 0x4123ed
mov edx, dword [rbp + 0x8c]
test edx, edx
jne 0x410998
mov dword [r14 + 0x40], eax
test r9d, r9d
je 0x4109a8
cmp r10d, 0x3e9
jne 0x4109a8
mov ecx, dword [r14 + 0x40]
imul eax, r13d, 0x32
mov ebx, dword [rbp + 0x60]
xor r8d, r8d
mov dword [rbp + 0x48], r11d
cmp eax, ebx
mov eax, ecx
mov ecx, dword [rbp + 0x20]
sete r8b
imul eax, ebx
mov dword [rsp + 0x28], ecx
cdq
idiv r13d
mov edx, dword [r14 + 0x34]
mov dword [rsp + 0x20], edx
mov edx, dword [rbp + 0x68]
mov ecx, eax
call fcn.0040ea20
mov r11d, dword [rbp + 0x48]
imul eax, r13d
cdq
idiv ebx
mov dword [r14 + 0x40], eax
jmp 0x4109a8
mov ecx, 0x3c
call fcn.00434720
shl eax, 8
mov ecx, eax
jmp 0x41059e
mov dword [rbp + 0x88], 0x11
jmp 0x41234a
cmp dword [r14 + 0x70], 2
jne 0x4116c4
movsx eax, word [r14 + 0x3770]
mov r8d, dword [r14 + 0x5c]
cmp ax, 0x3fff
jle 0x4124aa
cmp r8d, 0x3fff
jg 0x4116c4
pxor xmm0, xmm0
mov r11, qword [rbp + 0xa0]
pxor xmm1, xmm1
movaps xmm8, xmm6
cvtsi2ss xmm0, eax
mov eax, 0xbb80
movss xmm2, dword [0x0046c21c]
movaps xmm4, xmm6
cdq
cvtsi2ss xmm1, r8d
mov rdi, qword [r11 + 0x48]
idiv dword [r14 + 0x90]
mulss xmm0, xmm2
subss xmm8, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm2
subss xmm4, xmm0
movsxd r9, eax
mov eax, dword [r11 + 4]
cdq
idiv r9d
mov ebx, eax
movsxd rsi, eax
test eax, eax
jle 0x412c79
lea r11d, [rbx - 1]
shl r9, 2
lea rax, [r12 + 4]
mov rdx, rdi
movss xmm2, dword [0x0046c16c]
lea r11, [r12 + r11*8 + 0xc]
nop dword [rax + rax]
movss xmm1, dword [rdx]
movss xmm5, dword [rax - 4]
add rax, 8
add rdx, r9
movss xmm3, dword [rax - 8]
mulss xmm1, xmm1
movaps xmm0, xmm5
subss xmm0, xmm3
movaps xmm7, xmm0
movaps xmm0, xmm6
subss xmm0, xmm1
mulss xmm1, xmm4
mulss xmm7, xmm2
mulss xmm0, xmm8
addss xmm0, xmm1
mulss xmm0, xmm7
subss xmm5, xmm0
addss xmm0, xmm3
movss dword [rax - 0xc], xmm5
movss dword [rax - 8], xmm0
cmp r11, rax
jne 0x412530
cmp r13d, ebx
jle 0x4125ca
nop dword [rax + rax]
movss xmm3, dword [r12 + rsi*8]
movss xmm1, dword [r12 + rsi*8 + 4]
movaps xmm0, xmm3
subss xmm0, xmm1
mulss xmm0, xmm2
mulss xmm0, xmm4
subss xmm3, xmm0
addss xmm0, xmm1
movss dword [r12 + rsi*8], xmm3
movss dword [r12 + rsi*8 + 4], xmm0
add rsi, 1
cmp r13d, esi
jg 0x412590
mov word [r14 + 0x3770], r8w
jmp 0x4116c4
cmp dword [r14 + 0x378c], 0x3e8
jne 0x411a86
mov r8d, dword [rbp + 0x8c]
test r8d, r8d
jne 0x411a86
cmp esi, 2
jle 0x411a86
mov rbx, qword [rbp + 0x398]
movsxd rax, esi
cmp byte [rbx + rax], 0
jne 0x411a86
lea eax, [rsi - 1]
mov rdx, rbx
cdqe
jmp 0x41263f
sub rax, 1
cmp byte [rdx + rax + 1], 0
jne 0x411a86
mov esi, eax
cmp eax, 2
jg 0x412630
jmp 0x411a86
movss xmm1, dword [0x0046c198]
jmp 0x410011
cmp ebx, 0x3e80
jg 0x40fdb7
mov eax, dword [r14 + 0x379c]
cmp eax, 0x44f
jle 0x40fd91
jmp 0x410a94
cmp eax, 0x1f40
je 0x412a41
cmp eax, 0x2ee0
je 0x412af6
cmp eax, 0x3e80
mov eax, 0x44f
cmovne eax, dword [rbp + 0x68]
mov dword [rbp + 0x68], eax
jmp 0x411d72
mov r9d, dword [r14 + 0x376c]
mov eax, dword [r14 + 0x90]
mov r8d, dword [rbp + 0x68]
mov dword [r14 + 0x46dc], 0
cdq
idiv r13d
mov edx, eax
call fcn.0040e720
mov rsi, qword [rbp + 0x398]
mov byte [rsi], al
mov eax, 1
jmp 0x412009
mov eax, ecx
mov edx, 0x51eb851f
sar ecx, 0x1f
imul edx
mov eax, edx
sar eax, 6
sub eax, ecx
mov dword [rbp + 0x88], eax
mov eax, edx
mov edx, 0xfbc
sar eax, 7
sub eax, ecx
mov rcx, qword [rbp + 0x80]
mov dword [rbp + 0x5c], eax
call fcn.004251d0
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0x271a
call fcn.004251d0
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0x2712
call fcn.004251d0
mov rcx, qword [rbp + 0x80]
xor r8d, r8d
mov edx, 0xfa6
call fcn.004251d0
mov r8d, 0xffffffff
mov edx, 0xfa2
mov rcx, qword [rbp + 0x80]
call fcn.004251d0
mov r11d, dword [rbp + 0x5c]
cmp dword [r14 + 0x378c], 0x3e9
je 0x412b02
mov r10d, r13d
sub r10d, dword [rbp + 0x88]
lea r9, [rbp + 0xb4]
mov r8d, r11d
mov eax, r10d
mov dword [rbp + 0x78], r10d
sub eax, r11d
imul eax, dword [r14 + 0x70]
mov dword [rsp + 0x20], 2
mov qword [rsp + 0x28], 0
mov rcx, qword [rbp + 0x80]
cdqe
lea rdx, [r12 + rax*4]
call fcn.0041f550
mov r10d, dword [rbp + 0x78]
imul r10d, dword [r14 + 0x70]
movsxd rcx, ebx
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], edi
mov rbx, qword [rbp + 0x10]
movsxd rax, r10d
mov r8d, dword [rbp + 0x88]
lea r9, [rbx + rcx]
mov rcx, qword [rbp + 0x80]
lea rdx, [r12 + rax*4]
call fcn.0041f550
test eax, eax
js 0x411ea0
mov rcx, qword [rbp + 0x80]
lea r8, [rbp + 0x9c]
mov edx, 0xfbf
call fcn.004251d0
mov ecx, dword [r14 + 0x90]
jmp 0x4119b9
mov rax, qword [r14 + 0x64]
mov rcx, qword [rbp + 0x80]
mov edx, 0x272c
lea r8, [rbp + 0xb4]
mov qword [rbp + 0xb4], rax
call fcn.004251d0
jmp 0x4117af
mov rcx, qword [rbp + 0x398]
mov r8d, r15d
mov edx, eax
call fcn.00416720
test eax, eax
jne 0x411ea0
mov eax, r15d
jmp 0x411a99
mov edi, dword [rbp + 0x54]
mov eax, 0x7d00
sub eax, edi
lea r9d, [rdi - 0x36b0]
shl eax, 0xb
cdq
idiv r9d
mov edx, 0x4000
sub edx, eax
mov dword [r14 + 0x5c], edx
jmp 0x4116bb
mov dword [r14 + 0x40], ecx
test r9d, r9d
je 0x412073
jmp 0x412407
mov eax, dword [r14 + 0x94]
test eax, eax
jne 0x412a86
mov r9d, dword [r14 + 0x90]
mov esi, dword [r14 + 0x70]
mov edx, 0x51eb851f
mov qword [rbp + 0x60], rsp
mov r8d, r9d
imul r8d, esi
mov eax, r8d
sar r8d, 0x1f
imul edx
sar edx, 7
sub edx, r8d
movsxd r8, edx
shl r8, 2
lea rax, [r8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov ebx, dword [r14 + 0xac]
sub rsp, rax
lea rax, [rsp + 0x70]
mov qword [rbp + 0x48], rax
jmp 0x411bec
mov ebx, dword [r14 + 0x70]
mov rdx, qword [rbp + 0x388]
imul ebx, r13d
mov rcx, rdx
mov r8d, ebx
call fcn.0040bed0
movaps xmm7, xmm0
pxor xmm0, xmm0
cvtsi2ss xmm0, ebx
divss xmm7, xmm0
jmp 0x411f3f
mov eax, 0xffffffff
jmp 0x40ff1e
mov edx, dword [rbp + 0x34]
mov rcx, qword [rbp + 0x78]
mov r8d, 1
call fcn.00428e10
bsr eax, dword [rbp + 0x120]
mov ecx, dword [r14 + 0x378c]
mov edx, dword [rbp + 0x118]
xor eax, 0x1f
cmp ecx, 0x3e9
je 0x412b63
lea eax, [rax + rdx - 0x19]
mov edi, dword [rbp + 0x6c]
sar eax, 3
sub edi, eax
mov eax, dword [rbp + 0x58]
cmp edi, eax
cmovg edi, eax
mov eax, 2
cmp edi, 2
cmovl edi, eax
mov eax, 0x101
cmp edi, 0x101
cmovg edi, eax
movzx eax, byte [rbp + 0x44]
mov byte [rbp + 0x5c], al
jmp 0x411729
mov rsi, qword [rbp + 0x80]
mov r8d, 1
mov edx, 0xfa6
mov rcx, rsi
call fcn.004251d0
mov r8d, dword [r14 + 0x98]
mov edx, 0xfb4
mov rcx, rsi
call fcn.004251d0
mov r8d, dword [r14 + 0xa0]
mov rcx, rsi
mov edx, 0xfa2
call fcn.004251d0
mov ecx, dword [r14 + 0x378c]
jmp 0x411b8f
mov r9d, dword [rbp + 0x70]
test r9d, r9d
jne 0x412ac1
movss xmm0, dword [0x0046c1c4]
comiss xmm0, dword [rbp + 0xe4]
ja 0x412c2e
mov dword [r14 + 0x46d0], 0
jmp 0x411a4d
mov dword [rbp + 0x68], 0x44d
jmp 0x411d72
lea ecx, [rdx + rdx*2]
mov edx, 0x66666667
mov eax, ecx
sar ecx, 0x1f
imul edx
sar edx, 1
sub edx, ecx
add r9d, edx
mov dword [r14 + 0x24], r9d
jmp 0x410890
movss xmm4, dword [0x0046c19c]
movss xmm5, dword [0x0046c1a0]
mov eax, 0xd
jmp 0x41078a
mov rdi, qword [rbp + 0x80]
mov r8d, dword [r14 + 0xa0]
mov edx, 0xfa2
sub r8d, dword [r14 + 0x24]
mov rcx, rdi
call fcn.004251d0
mov rcx, rdi
xor r8d, r8d
mov edx, 0xfb4
call fcn.004251d0
mov ecx, dword [r14 + 0x378c]
jmp 0x411b8f
mov eax, dword [r14 + 0x46d0]
add eax, 1
mov dword [r14 + 0x46d0], eax
cmp eax, 0xa
jle 0x412aeb
cmp eax, 0x1e
jle 0x412bb5
mov dword [r14 + 0x46d0], 0xa
mov eax, dword [rbp + 0x120]
jmp 0x411a4d
mov dword [rbp + 0x68], 0x44e
jmp 0x411d72
mov rcx, qword [rbp + 0x78]
mov edx, esi
mov ebx, esi
call fcn.00429150
mov r11d, dword [rbp + 0x5c]
jmp 0x412786
test r8d, r8d
je 0x411951
mov rcx, qword [rbp + 0x80]
mov r8d, dword [r14 + 0xa0]
mov edx, 0xfa2
sub r8d, dword [r14 + 0x24]
call fcn.004251d0
mov r8d, dword [r14 + 0x94]
jmp 0x411951
movss xmm4, dword [0x0046c1ac]
movss xmm5, dword [0x0046c1b0]
mov eax, 0xf
jmp 0x41078a
lea eax, [rax + rdx - 0xe]
mov edi, dword [rbp + 0x6c]
mov rcx, qword [rbp + 0x78]
mov r8d, 0x100
sar eax, 3
sub edi, eax
mov eax, dword [rbp + 0x58]
cmp edi, eax
cmovg edi, eax
mov eax, 2
cmp edi, 2
cmovl edi, eax
mov eax, 0x101
cmp edi, 0x101
cmovg edi, eax
lea edx, [rdi - 2]
call fcn.00428fe0
movzx eax, byte [rbp + 0x44]
mov ecx, dword [r14 + 0x378c]
mov byte [rbp + 0x5c], al
jmp 0x411729
mov eax, dword [r14 + 0x90]
mov ecx, dword [r14 + 0x378c]
mov dword [r14 + 0x46dc], 0
mov r9d, dword [r14 + 0x376c]
mov r8d, dword [rbp + 0x68]
cdq
idiv r13d
mov edx, eax
call fcn.0040e720
mov rdi, qword [rbp + 0x398]
mov byte [rdi], al
mov eax, 1
jmp 0x411a99
mov eax, dword [r14 + 0x94]
test eax, eax
je 0x4119a0
mov rax, qword [rbp + 0x10]
movsxd rdx, ebx
movsxd rcx, esi
movsxd r8, edi
add ebx, edi
add rdx, rax
add rcx, rax
call sub.msvcrt.dll_memmove
jmp 0x4119a0
pxor xmm1, xmm1
jmp 0x410829
mov ebx, dword [r14 + 0x70]
mov rdx, qword [rbp + 0x388]
movss xmm6, dword [r14 + 0x46d4]
imul ebx, r13d
mov rcx, rdx
mov r8d, ebx
call fcn.0040bed0
pxor xmm1, xmm1
cvtsi2ss xmm1, ebx
divss xmm0, xmm1
mulss xmm0, dword [0x0046c220]
comiss xmm6, xmm0
jae 0x412ac1
mov eax, dword [rbp + 0x120]
jmp 0x412a31
xor esi, esi
movss xmm2, dword [0x0046c16c]
jmp 0x412590
mov dword [r14 + 0x37a0], eax
mov dword [r14 + 0x379c], eax
test r11d, r11d
jne 0x40fd23
cmp byte [rbp + 0x58], 0
je 0x40fd23
mov r11d, dword [r14 + 0x58]
test r11d, r11d
jne 0x40fd23
cmp eax, 0x44f
jle 0x40fd23
mov dword [r14 + 0x379c], 0x44f
mov eax, 0x44f
jmp 0x40fd23
mov ecx, 0x3e8
cmp edi, 0x10
jle 0x410140
cmp ecx, 0x3e8
sete r9b
xor edi, edi
xor ebx, ebx
xor esi, esi
cmp r8d, 0x44f
jle 0x4100f5
test r9b, r9b
je 0x4100f5
mov ecx, 0x3e8
mov r8d, 0x44f
jmp 0x40feca
mov eax, 0x32
mov esi, 3
mov r11d, 0x32
cdq
idiv edi
mov edi, 3
mov ebx, eax
jmp 0x412cf4
cmp r8d, 0x44e
jne 0x410101
jmp 0x40febf
mov r8d, 0x747
lea rdx, str..._src_opus_encoder.c
lea rcx, str.assertion_failed:_st__silk_mode.internalSampleRate__16000
call fcn.0040b720
mov r11d, dword [r14 + 0x37a8]
mov ebx, dword [r14 + 0x90]
mov byte [rbp + 0x58], 0
mov esi, dword [r14 + 0x28]
mov dword [rbp + 0x40], 1
jmp 0x40fc60
mov r8d, 0x6db
lea rdx, str..._src_opus_encoder.c
lea rcx, str.assertion_failed:_st__mode__MODE_HYBRID__curr_bandwidth__OPUS_BANDWIDTH_WIDEBAND
call fcn.0040b720
nop
nop dword [rax]
nop word cs:[rax + rax]
push rbp
push r12
push rdi
push rsi
push rbx
mov rbp, rsp
sub rsp, 0x70
mov r12d, r8d
mov rbx, rdx
mov r8d, dword [rcx + 0x90]
mov rsi, rcx
mov edx, dword [rcx + 0x9c]
mov ecx, r12d
mov rdi, r9
call fcn.0040f340
mov r8d, eax
test eax, eax
jle 0x412e9b
mov r9d, dword [rsi + 0x70]
mov ecx, r9d
imul ecx, eax
movsxd rax, ecx
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
lea rdx, [rsp + 0x70]
test ecx, ecx
jle 0x412e44
lea r10d, [rcx - 1]
movss xmm1, dword [0x0046c224]
xor ecx, ecx
jmp 0x412e26
mov rcx, rax
movsx eax, word [rbx + rcx*2]
pxor xmm0, xmm0
cvtsi2ss xmm0, eax
lea rax, [rcx + 1]
mulss xmm0, xmm1
movss dword [rdx + rcx*4], xmm0
cmp r10, rcx
jne 0x412e23
lea rax, [0x0040ee10]
mov dword [rsp + 0x50], r9d
mov rcx, rsi
mov r9, rdi
mov qword [rsp + 0x58], rax
mov eax, dword [rbp + 0x50]
mov dword [rsp + 0x60], 0
mov dword [rsp + 0x48], 0xfffffffe
mov dword [rsp + 0x40], 0
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], eax
call fcn.0040f8b0
mov rsp, rbp
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
mov eax, 0xffffffff
jmp 0x412e91