Function at 0x426e80
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, 0x218
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x180], xmm6
mov r15d, dword [rcx + 0xc]
mov eax, dword [rcx + 0x10]
mov rbx, qword [rbp + 0x208]
mov r12, rcx
mov rsi, rdx
mov dword [rbp + 0x1f0], r8d
mov qword [rbp + 0x1f8], r9
mov dword [rbp + 0x100], eax
mov dword [rbp + 0xf8], r15d
mov dword [rbp + 0x114], 0
mov dword [rbp + 0x118], 0
call fcn.00426b30
mov rdi, qword [r12]
lea rdx, [r12 + 0x60]
mov rax, qword [rdi + 0x20]
mov ecx, dword [rdi + 4]
mov qword [rbp + 0xd8], rdi
mov r8d, dword [rdi + 8]
mov r9d, dword [rdi + 0x28]
mov qword [rbp + 0xe0], rax
mov eax, dword [r12 + 0x18]
lea r10d, [rcx + 0x800]
mov dword [rbp + 0xb4], ecx
lea ecx, [r15 + r15*2]
mov dword [rbp + 0xfc], eax
mov eax, dword [r12 + 0x1c]
shl ecx, 3
movsxd rcx, ecx
mov dword [rbp + 0xd4], r8d
mov dword [rbp + 0x10c], eax
mov eax, dword [rbp + 0x200]
imul eax, dword [r12 + 0x14]
mov r11d, eax
mov dword [rbp + 0x64], eax
mov eax, r15d
imul eax, r10d
cdqe
add rax, rcx
lea rcx, [rdx + rax*4]
lea eax, [r8 + r8]
mov dword [rbp + 0x78], eax
cdqe
shl rax, 2
mov qword [rbp + 0xf0], rcx
add rcx, rax
mov qword [rbp + 0x48], rax
mov qword [rbp + 0xc0], rcx
add rcx, rax
mov eax, 0xffffffff
mov qword [rbp + 0xb8], rcx
test r9d, r9d
js 0x426fc8
mov r8d, dword [rdi + 0x30]
cmp r11d, r8d
je 0x42828b
xor ecx, ecx
jmp 0x426fbb
mov eax, r8d
shl eax, cl
cmp eax, r11d
je 0x426fe3
add ecx, 1
cmp ecx, r9d
jle 0x426fb1
mov eax, 0xffffffff
movaps xmm6, xmmword [rbp + 0x180]
lea rsp, [rbp + 0x198]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov eax, 1
mov dword [rbp + 0x108], ecx
shl eax, cl
mov dword [rbp + 0x50], eax
cmp dword [rbp + 0x1f0], 0x4fb
ja 0x426fc3
cmp qword [rbp + 0x1f8], 0
je 0x426fc3
movzx ecx, byte [rbp + 0x108]
mov qword [rbp + 0x120], rdx
shl r8d, cl
movsxd rax, r8d
mov dword [rbp + 0xc8], r8d
mov qword [rbp + 0x70], rax
neg rax
cmp dword [rbp + 0xf8], 1
lea rcx, [rax*4 + 0x2000]
lea rax, [rdx + rcx]
mov qword [rbp + 0x130], rax
jle 0x42705f
movsxd r10, r10d
lea rax, [rdx + r10*4]
mov qword [rbp + 0x128], rax
add rax, rcx
mov qword [rbp + 0x138], rax
mov rdi, qword [rbp + 0xd8]
mov eax, dword [rbp + 0x10c]
lea rcx, [r12 + 0x58]
mov qword [rbp + 0x68], rcx
cmp dword [rdi + 0xc], eax
cmovle eax, dword [rdi + 0xc]
test rsi, rsi
sete dl
cmp dword [rbp + 0x1f0], 1
mov dword [rbp + 0x7c], eax
setle al
add rdi, 0x10
or dl, al
mov qword [rbp + 0x80], rdi
mov byte [rbp + 0x8b], dl
jne 0x42813d
mov r11d, dword [r12 + 0x38]
xor eax, eax
test r11d, r11d
setne al
mov dword [r12 + 0x3c], eax
test rbx, rbx
je 0x428210
cmp dword [rbp + 0x100], 1
je 0x427f82
movsxd rdi, dword [rbp + 0xd4]
mov eax, dword [rbp + 0x1f0]
mov edx, dword [rbx + 0x18]
lea esi, [rax*8]
bsr eax, dword [rbx + 0x20]
mov dword [rbp + 0xcc], esi
xor eax, 0x1f
lea r13d, [rax + rdx - 0x20]
cmp esi, r13d
jg 0x427d9f
mov dword [rbp + 0xb0], 1
mov esi, dword [rbp + 0xcc]
mov eax, esi
sub eax, r13d
mov r13d, esi
add edx, eax
mov dword [rbx + 0x18], edx
mov r9d, dword [rbp + 0xfc]
test r9d, r9d
jne 0x427d41
lea eax, [r13 + 0xf]
cmp eax, dword [rbp + 0xcc]
jl 0x42822e
mov dword [rbp + 0x98], 0
pxor xmm6, xmm6
mov dword [rbp + 0x8c], 0
mov r8d, dword [rbp + 0x108]
add r13d, 2
test r8d, r8d
je 0x427d6d
cmp dword [rbp + 0xcc], r13d
jg 0x4281c3
mov dword [rbp + 0xd0], 0
xor eax, eax
mov dword [rbp + 0x60], 0
mov esi, dword [rbp + 0x108]
mov dword [rsp + 0x38], esi
mov ecx, dword [rbp + 0x100]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x30], ecx
mov qword [rsp + 0x28], rbx
mov r14d, dword [rbp + 0x10c]
mov r15d, dword [rbp + 0xfc]
mov r9, qword [rbp + 0xf0]
mov rcx, qword [rbp + 0xd8]
mov r8d, r14d
mov edx, r15d
call fcn.0042cf00
lea rax, [rdi*4]
mov qword [rbp + 0x58], rsp
mov qword [rbp + 0x40], rax
add rax, 0xf
mov qword [rbp + 0xa8], rax
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov edx, dword [rbx + 0x18]
sub rsp, rax
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xa0], rax
mov eax, dword [rbx + 8]
lea r9d, [rax*8]
bsr eax, dword [rbx + 0x20]
xor eax, 0x1f
cmp dword [rbp + 0xd0], 1
lea r8d, [rax + rdx - 0x20]
sbb edx, edx
and edx, 2
mov eax, r8d
add edx, 2
test esi, esi
je 0x427de2
lea ecx, [r8 + rdx + 1]
xor edi, edi
mov esi, dword [rbp + 0x10c]
cmp r9d, ecx
setae dil
mov dword [rbp + 0xe8], edi
sub r9d, edi
cmp dword [rbp + 0xfc], esi
jge 0x4282a1
cmp dword [rbp + 0xd0], 1
mov qword [rbp + 0x1e0], r12
mov r15d, 0x20
sbb edi, edi
xor r13d, r13d
movsxd rsi, dword [rbp + 0xfc]
xor r14d, r14d
not edi
mov r12d, r13d
mov r13, qword [rbp + 0xa0]
add edi, 5
mov r8d, edi
mov rdi, rbx
mov ebx, r9d
jmp 0x4272b4
mov dword [r13 + rsi*4], r14d
mov edx, r8d
add rsi, 1
cmp dword [rbp + 0x10c], esi
jle 0x4272f0
lea ecx, [rdx + rax]
cmp ecx, ebx
ja 0x4272a0
mov rcx, rdi
mov dword [rbp + 0x104], r8d
call fcn.004289b0
mov r8d, dword [rbp + 0x104]
xor r14d, eax
bsr eax, dword [rdi + 0x20]
or r12d, r14d
xor eax, 0x1f
add eax, dword [rdi + 0x18]
sub eax, r15d
jmp 0x4272a0
mov r13d, r12d
mov r12, qword [rbp + 0x1e0]
mov rbx, rdi
mov ecx, dword [rbp + 0xe8]
test ecx, ecx
je 0x427352
mov eax, dword [rbp + 0xd0]
movsxd rdx, dword [rbp + 0x108]
mov dword [rbp + 0xe8], 0
lea r8d, [rax*4]
lea rax, [rdx*8]
add rax, qword [0x0047cfe0]
lea ecx, [r8 + r13]
lea edx, [r8 + r13 + 2]
movsxd rdx, edx
movsxd rcx, ecx
movzx edi, byte [rax + rdx]
cmp byte [rax + rcx], dil
jne 0x42810f
bsr eax, dword [rbx + 0x20]
mov edx, dword [rbx + 0x18]
mov edi, dword [rbp + 0xfc]
mov esi, dword [rbp + 0x10c]
xor eax, 0x1f
lea r8d, [rax + rdx - 0x20]
cmp edi, esi
jge 0x427df5
mov eax, dword [rbp + 0xe8]
mov ecx, dword [rbp + 0xd0]
lea edx, [rsi - 1]
movsxd r13, edi
sub edx, edi
lea r9d, [rax + rcx*2]
mov rcx, qword [rbp + 0xa0]
lea rdx, [rdx + r13 + 1]
add r9d, r9d
lea r10, [rcx + rdx*4]
movsxd rdx, dword [rbp + 0x108]
lea rax, [rcx + r13*4]
mov rcx, qword [0x0047cfe0]
shl rdx, 3
add rcx, rdx
nop dword [rax]
mov edx, dword [rax]
add rax, 4
add edx, r9d
movsxd rdx, edx
movsx edx, byte [rcx + rdx]
mov dword [rax - 4], edx
cmp r10, rax
jne 0x4273c0
mov eax, dword [rbp + 0xcc]
add r8d, 3
lea edi, [rax*8]
mov dword [rbp + 0x9c], edi
cmp eax, r8d
jg 0x428079
mov rsi, qword [rbp + 0xa8]
and rsi, 0xfffffffffffffff0
mov rax, rsi
call fcn.004582d0
mov r9d, dword [rbp + 0x100]
mov r8d, dword [rbp + 0x108]
mov rcx, qword [rbp + 0xd8]
sub rsp, rax
lea rax, [rsp + 0xc0]
mov rdx, rax
mov qword [rbp + 0x90], rax
call fcn.0040bc30
mov rax, rsi
call fcn.004582d0
sub rsp, rax
mov rcx, rbx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xe8], rax
call fcn.004287c0
mov dword [rbp + 0x54], 2
mov r9d, eax
mov rax, qword [rbp + 0x90]
mov r14d, dword [rbp + 0x9c]
mov dword [rbp + 0x104], 6
mov qword [rbp + 0x1e0], r12
mov r12, r13
lea rdi, [rax + r13*4]
mov eax, r9d
nop
mov rsi, qword [rbp + 0xe0]
movsx ecx, word [rsi + r12*2]
movsx edx, word [rsi + r12*2 + 2]
mov esi, 0x30
sub edx, ecx
imul edx, dword [rbp + 0x100]
movzx ecx, byte [rbp + 0x108]
shl edx, cl
mov ecx, dword [rbp + 0x104]
cmp edx, 0x30
cmovge esi, edx
shl edx, 3
cmp esi, edx
cmovg esi, edx
lea edx, [rax + rcx*8]
cmp edx, r14d
jge 0x427d2d
mov edx, dword [rdi]
test edx, edx
jle 0x427d2d
mov edx, ecx
xor r15d, r15d
jmp 0x427508
sub r14d, esi
lea edx, [rax + 8]
add r15d, esi
cmp edx, r14d
jge 0x427520
mov edx, 1
cmp dword [rdi], r15d
jle 0x427520
mov rcx, rbx
call fcn.004289b0
mov rcx, rbx
mov r13d, eax
call fcn.004287c0
test r13d, r13d
jne 0x4274f0
mov rsi, qword [rbp + 0xe8]
mov dword [rsi + r12*4], r15d
test r15d, r15d
jle 0x42754a
mov esi, dword [rbp + 0x104]
mov edx, 3
cmp esi, 3
cmovl esi, edx
lea ecx, [rsi - 1]
mov dword [rbp + 0x104], ecx
add r12, 1
add rdi, 4
cmp dword [rbp + 0x10c], r12d
jg 0x427490
mov r12, qword [rbp + 0x1e0]
mov r9d, eax
mov rax, qword [rbp + 0xa8]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov esi, 5
sub rsp, rax
add r9d, 0x2f
lea r13, [rsp + 0xc0]
cmp r9d, r14d
jl 0x427fcc
mov rcx, rbx
call fcn.004287c0
mov ecx, dword [rbp + 0x9c]
mov dword [rbp + 0x104], 0
sub ecx, 1
sub ecx, eax
cmp byte [rbp + 0x8b], 0
je 0x4275d1
mov eax, dword [rbp + 0x108]
lea eax, [rax*8 + 0x10]
cmp eax, ecx
jle 0x4280fd
mov rdx, qword [rbp + 0xa8]
and rdx, 0xfffffffffffffff0
mov rax, rdx
call fcn.004582d0
sub rsp, rax
mov rax, rdx
lea rdi, [rsp + 0xc0]
mov qword [rbp + 0xe0], rdi
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xa8], rax
mov dword [rsp + 0x90], 0
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x80], 0
mov qword [rsp + 0x78], rbx
mov edx, dword [rbp + 0x108]
mov dword [rsp + 0x70], edx
mov r14d, dword [rbp + 0x100]
mov qword [rsp + 0x60], rax
lea rax, [rbp + 0x11c]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x118]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x114]
mov dword [rsp + 0x68], r14d
mov dword [rsp + 0x40], ecx
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], esi
mov rax, qword [rbp + 0x90]
mov qword [rsp + 0x20], rax
mov esi, dword [rbp + 0xfc]
mov rdi, qword [rbp + 0xd8]
mov r9, qword [rbp + 0xe8]
mov r8d, dword [rbp + 0x10c]
mov edx, esi
mov rcx, rdi
call fcn.0042d580
mov dword [rsp + 0x30], r14d
mov edx, esi
mov rcx, rdi
mov qword [rsp + 0x28], rbx
mov r15d, eax
mov esi, 0x800
xor r14d, r14d
mov qword [rsp + 0x20], r13
mov r9, qword [rbp + 0xf0]
mov r8d, dword [rbp + 0x10c]
call fcn.0042d1b0
mov edi, dword [rbp + 0xb4]
mov eax, esi
sub eax, dword [rbp + 0xc8]
mov esi, edi
shr esi, 0x1f
add esi, edi
mov rdi, qword [rbp + 0x70]
sar esi, 1
add esi, eax
shl rdi, 2
movsxd rsi, esi
shl rsi, 2
movsxd rax, r14d
mov r8, rsi
mov rcx, qword [rbp + rax*8 + 0x120]
lea rdx, [rcx + rdi]
call sub.msvcrt.dll_memmove
lea eax, [r14 + 1]
mov r14d, 1
cmp dword [rbp + 0xf8], eax
jg 0x427712
mov r11d, dword [rbp + 0x100]
mov r14d, dword [rbp + 0xd4]
imul r14d, r11d
movsxd rax, r14d
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.004582d0
sub rsp, rax
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xe8], rax
mov eax, dword [rbp + 0xc8]
imul eax, r11d
cdqe
lea rax, [rax*4 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.004582d0
mov r10d, dword [r12 + 0x28]
mov r8d, dword [rbp + 0x11c]
mov ecx, dword [rbp + 0x114]
mov edx, dword [rbp + 0x118]
sub rsp, rax
mov eax, dword [rbp + 0x1f0]
lea r9, [r12 + 0x2c]
lea rsi, [rsp + 0xc0]
shl eax, 6
add rdi, rsi
sub eax, dword [rbp + 0x104]
cmp r11d, 2
mov r11d, 0
cmovne rdi, r11
mov r11d, dword [r12 + 0x24]
mov dword [rsp + 0x90], r15d
mov dword [rsp + 0xa8], r10d
mov dword [rsp + 0xb0], r11d
mov dword [rsp + 0xa0], 0
mov qword [rsp + 0x98], r9
mov r10d, dword [rbp + 0x108]
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0x88], r10d
mov dword [rsp + 0x78], r8d
mov dword [rsp + 0x70], eax
mov r8, qword [rbp + 0xa0]
mov dword [rsp + 0x60], ecx
xor ecx, ecx
mov qword [rsp + 0x68], r8
mov dword [rsp + 0x58], edx
mov edx, dword [rbp + 0x54]
mov dword [rsp + 0x50], edx
mov edx, dword [rbp + 0x60]
mov dword [rsp + 0x48], edx
mov rdx, qword [rbp + 0xe0]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rdx
mov rax, qword [rbp + 0xe8]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rsi
mov r9d, dword [rbp + 0x10c]
mov r8d, dword [rbp + 0xfc]
mov rdx, qword [rbp + 0xd8]
call fcn.0041dc10
mov r15d, dword [rbp + 0x104]
test r15d, r15d
jne 0x427e8a
bsr eax, dword [rbx + 0x20]
mov edi, dword [rbp + 0x100]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x40], edi
mov edx, dword [rbx + 0x18]
mov edi, dword [rbp + 0xcc]
xor eax, 0x1f
lea eax, [rax + rdx - 0x20]
sub edi, eax
mov dword [rsp + 0x30], edi
mov rax, qword [rbp + 0xa8]
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], rax
mov r9, qword [rbp + 0xf0]
mov r8d, dword [rbp + 0x10c]
mov edx, dword [rbp + 0xfc]
mov rcx, qword [rbp + 0xd8]
call fcn.0042d2b0
mov edi, dword [rbp + 0xb0]
test edi, edi
je 0x42792e
test r14d, r14d
jle 0x42792e
mov rdi, qword [rbp + 0xf0]
lea edx, [r14 - 1]
movss xmm0, dword [0x0046f848]
mov rax, rdi
lea rdx, [rdi + rdx*4 + 4]
movss dword [rax], xmm0
add rax, 4
cmp rdx, rax
jne 0x427921
mov eax, dword [r12 + 0x28]
lea rdi, [rbp + 0x130]
mov rdx, rsi
xor r13d, r13d
mov r8, rdi
mov esi, 0xf
mov dword [rsp + 0x60], eax
mov eax, dword [rbp + 0xb0]
mov dword [rsp + 0x58], eax
mov eax, dword [r12 + 0x14]
mov dword [rsp + 0x50], eax
mov eax, dword [rbp + 0x108]
mov dword [rsp + 0x48], eax
mov eax, dword [rbp + 0xd0]
mov dword [rsp + 0x40], eax
mov eax, dword [rbp + 0xf8]
mov dword [rsp + 0x38], eax
mov eax, dword [rbp + 0x100]
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x7c]
mov dword [rsp + 0x28], eax
mov eax, dword [rbp + 0xfc]
mov dword [rsp + 0x20], eax
mov r15, qword [rbp + 0xd8]
mov r9, qword [rbp + 0xf0]
mov rcx, r15
call fcn.004259e0
cmp dword [r12 + 0x40], 0xf
mov r9d, esi
mov r8d, esi
movsxd r14, r13d
cmovge r9d, dword [r12 + 0x40]
mov edx, dword [r12 + 0x28]
cmp dword [r12 + 0x44], 0xf
cmovge r8d, dword [r12 + 0x44]
mov rcx, qword [rbp + r14*8 + 0x130]
mov dword [r12 + 0x40], r9d
mov dword [r12 + 0x44], r8d
mov dword [rsp + 0x58], edx
mov eax, dword [rbp + 0xb4]
mov dword [rsp + 0x50], eax
mov rdx, qword [r15 + 0x48]
mov qword [rsp + 0x48], rdx
mov edx, dword [r12 + 0x50]
mov dword [rsp + 0x40], edx
mov edx, dword [r12 + 0x54]
mov dword [rsp + 0x38], edx
movss xmm0, dword [r12 + 0x48]
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [r12 + 0x4c]
movss dword [rsp + 0x28], xmm0
mov edx, dword [r15 + 0x30]
mov dword [rsp + 0x20], edx
mov rdx, rcx
call fcn.0040b800
mov r11d, dword [rbp + 0x108]
test r11d, r11d
jne 0x427cb1
lea edx, [r13 + 1]
mov r13d, 1
cmp dword [rbp + 0xf8], edx
jg 0x4279ae
mov eax, dword [r12 + 0x40]
movss xmm0, dword [r12 + 0x48]
movss dword [r12 + 0x48], xmm6
mov esi, dword [rbp + 0x98]
mov r10d, dword [rbp + 0x108]
mov dword [r12 + 0x44], eax
mov eax, dword [r12 + 0x50]
movss dword [r12 + 0x4c], xmm0
mov dword [r12 + 0x54], eax
mov eax, dword [rbp + 0x8c]
mov dword [r12 + 0x50], esi
mov dword [r12 + 0x40], eax
test r10d, r10d
je 0x427abb
mov dword [r12 + 0x44], eax
mov dword [r12 + 0x54], esi
movss dword [r12 + 0x4c], xmm6
cmp dword [rbp + 0x100], 1
je 0x4281a8
mov r9d, dword [rbp + 0xd0]
test r9d, r9d
je 0x427fe8
mov esi, dword [rbp + 0x78]
xor eax, eax
lea ecx, [rsi - 1]
test esi, esi
jle 0x427b10
mov r9, qword [rbp + 0xf0]
mov rdx, qword [rbp + 0xc0]
jmp 0x427af7
mov rax, r8
movss xmm0, dword [rdx + rax*4]
minss xmm0, dword [r9 + rax*4]
lea r8, [rax + 1]
movss dword [rdx + rax*4], xmm0
cmp rcx, rax
jne 0x427af4
mov r8d, dword [rbp + 0xfc]
test r8d, r8d
jle 0x428267
movss xmm0, dword [0x0046f848]
xor edx, edx
xor r8d, r8d
mov rax, qword [rbp + 0xf0]
lea rcx, [rdx*4]
mov r11d, dword [rbp + 0xfc]
lea r10, [rax + rcx]
mov rax, qword [rbp + 0xb8]
lea r9, [rax + rcx]
add rcx, qword [rbp + 0xc0]
xor eax, eax
nop dword [rax + rax]
mov dword [r10 + rax*4], 0
movss dword [r9 + rax*4], xmm0
movss dword [rcx + rax*4], xmm0
add rax, 1
cmp r11d, eax
jg 0x427b60
mov esi, dword [rbp + 0x10c]
cmp dword [rbp + 0xd4], esi
jle 0x427bdb
mov rsi, qword [rbp + 0xf0]
shl rdx, 2
movsxd rax, dword [rbp + 0x10c]
mov r10d, dword [rbp + 0xd4]
lea r9, [rsi + rdx]
mov rsi, qword [rbp + 0xb8]
lea rcx, [rsi + rdx]
add rdx, qword [rbp + 0xc0]
nop dword [rax]
mov dword [r9 + rax*4], 0
movss dword [rcx + rax*4], xmm0
movss dword [rdx + rax*4], xmm0
add rax, 1
cmp r10d, eax
jg 0x427bc0
test r8d, r8d
je 0x427c80
mov eax, dword [rbx + 0x20]
mov rcx, rdi
mov dword [r12 + 0x2c], eax
mov eax, dword [rbp + 0x210]
mov dword [rsp + 0x38], eax
mov rax, qword [rbp + 0x68]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x80]
mov qword [rsp + 0x28], rax
mov eax, dword [r12 + 0x14]
mov dword [rsp + 0x20], eax
mov rdx, qword [rbp + 0x1f8]
mov r9d, dword [rbp + 0xf8]
mov r8d, dword [rbp + 0xc8]
call fcn.00425770
bsr eax, dword [rbx + 0x20]
mov edx, dword [rbx + 0x18]
mov dword [r12 + 0x38], 0
xor eax, 0x1f
lea edx, [rax + rdx - 0x20]
mov eax, 0xfffffffd
cmp dword [rbp + 0xcc], edx
jl 0x427c6e
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x427c65
mov dword [r12 + 0x30], 1
mov eax, dword [rbp + 0x64]
cdq
idiv dword [r12 + 0x14]
mov rsp, qword [rbp + 0x58]
jmp 0x426fc8
mov ecx, dword [rbp + 0xfc]
mov r8d, 1
movsxd rdx, dword [rbp + 0xd4]
test ecx, ecx
jg 0x427b2d
mov esi, dword [rbp + 0x10c]
cmp edx, esi
jle 0x427be4
movsxd rdx, edx
jmp 0x427b8a
movsxd r8, dword [r15 + 0x30]
mov rcx, qword [rbp + r14*8 + 0x130]
mov r9d, dword [r12 + 0x28]
mov rdx, r8
lea rcx, [rcx + r8*4]
mov r8d, dword [r12 + 0x40]
mov dword [rsp + 0x58], r9d
mov eax, dword [rbp + 0xb4]
mov dword [rsp + 0x50], eax
mov r9, qword [r15 + 0x48]
mov qword [rsp + 0x48], r9
mov eax, dword [rbp + 0x98]
mov dword [rsp + 0x40], eax
mov r9d, dword [r12 + 0x50]
movss dword [rsp + 0x30], xmm6
mov dword [rsp + 0x38], r9d
movss xmm0, dword [r12 + 0x48]
movss dword [rsp + 0x28], xmm0
mov eax, dword [rbp + 0xc8]
sub eax, edx
mov rdx, rcx
mov dword [rsp + 0x20], eax
mov r9d, dword [rbp + 0x8c]
call fcn.0040b800
jmp 0x427a49
mov rcx, qword [rbp + 0xe8]
mov dword [rcx + r12*4], 0
jmp 0x42754a
mov r8d, dword [rbp + 0x108]
pxor xmm6, xmm6
mov dword [rbp + 0x98], 0
add r13d, 2
mov dword [rbp + 0x8c], 0
test r8d, r8d
jne 0x42716b
mov dword [rbp + 0xd0], 0
mov dword [rbp + 0x60], 0
xor eax, eax
cmp dword [rbp + 0xcc], r13d
jle 0x42718b
mov edx, 3
mov rcx, rbx
call fcn.004289b0
jmp 0x42718b
mov dword [rbp + 0xb0], 0
cmp r13d, 1
jne 0x42711f
mov edx, 0xf
mov rcx, rbx
call fcn.004289b0
mov dword [rbp + 0xb0], eax
test eax, eax
je 0x42711f
bsr eax, dword [rbx + 0x20]
mov edx, dword [rbx + 0x18]
xor eax, 0x1f
lea r13d, [rdx + rax - 0x20]
jmp 0x42710c
mov dword [rbp + 0xe8], 0
cmp r15d, r14d
jl 0x427262
mov eax, dword [rbp + 0xcc]
add r8d, 3
lea r14d, [rax*8]
cmp r8d, eax
jl 0x428326
mov rsi, qword [rbp + 0xa8]
and rsi, 0xfffffffffffffff0
mov rax, rsi
call fcn.004582d0
mov r9d, dword [rbp + 0x100]
mov r8d, dword [rbp + 0x108]
mov rcx, qword [rbp + 0xd8]
sub rsp, rax
lea rax, [rsp + 0xc0]
mov rdx, rax
mov qword [rbp + 0x90], rax
call fcn.0040bc30
mov rax, rsi
call fcn.004582d0
sub rsp, rax
mov rcx, rbx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xe8], rax
call fcn.004287c0
mov dword [rbp + 0x9c], r14d
mov r9d, eax
mov dword [rbp + 0x54], 2
jmp 0x427569
mov edx, 1
mov rcx, rbx
call fcn.00428a60
bsr edx, dword [rbx + 0x20]
mov r15d, dword [rbp + 0x100]
mov edi, eax
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x40], r15d
mov eax, dword [rbx + 0x18]
mov ecx, dword [rbp + 0xcc]
xor edx, 0x1f
lea eax, [rdx + rax - 0x20]
sub ecx, eax
mov dword [rsp + 0x30], ecx
mov rcx, qword [rbp + 0xa8]
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], rcx
mov r13d, dword [rbp + 0x10c]
mov r9, qword [rbp + 0xf0]
mov edx, dword [rbp + 0xfc]
mov rcx, qword [rbp + 0xd8]
mov r8d, r13d
call fcn.0042d2b0
test edi, edi
je 0x4278f7
mov eax, dword [r12 + 0x28]
mov dword [rsp + 0x68], eax
mov eax, dword [r12 + 0x2c]
mov dword [rsp + 0x60], eax
mov rdx, qword [rbp + 0xe0]
mov qword [rsp + 0x58], rdx
mov r11, qword [rbp + 0xb8]
mov qword [rsp + 0x50], r11
mov r11, qword [rbp + 0xc0]
mov qword [rsp + 0x48], r11
mov rdx, qword [rbp + 0xf0]
mov dword [rsp + 0x38], r13d
mov qword [rsp + 0x40], rdx
mov eax, dword [rbp + 0xfc]
mov rdx, rsi
mov dword [rsp + 0x30], eax
mov edi, dword [rbp + 0xc8]
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x28], edi
mov r9d, dword [rbp + 0x108]
mov r8, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0xd8]
call fcn.0041c5f0
jmp 0x4278f7
mov r10d, dword [rbp + 0xd4]
test r10d, r10d
jle 0x4270d0
movsxd rdi, dword [rbp + 0xd4]
mov rsi, qword [rbp + 0xf0]
lea edx, [rdi - 1]
mov rax, rsi
lea rdx, [rsi + rdx*4 + 4]
nop dword [rax + rax]
movss xmm0, dword [rax]
maxss xmm0, dword [rax + rdi*4]
add rax, 4
movss dword [rax - 4], xmm0
cmp rdx, rax
jne 0x427fb0
jmp 0x4270d7
mov r8d, 7
lea rdx, str.wmW_
mov rcx, rbx
call fcn.00428a00
mov esi, eax
jmp 0x427596
mov r15, qword [rbp + 0x48]
mov rsi, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0xb8]
mov r8, r15
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov rdx, qword [rbp + 0xf0]
mov r8, r15
mov rcx, rsi
call sub.msvcrt.dll_memcpy
cmp dword [r12 + 0x38], 9
movss xmm1, dword [0x0046f814]
jle 0x428127
mov eax, dword [rbp + 0x78]
test eax, eax
jle 0x427b10
mov rsi, qword [rbp + 0xb8]
mov rcx, qword [rbp + 0x48]
lea r8d, [rax - 1]
xor eax, eax
mov r9, qword [rbp + 0xf0]
lea rdx, [rsi + rcx]
jmp 0x428057
mov rax, rcx
movss xmm0, dword [rdx + rax*4]
lea rcx, [rax + 1]
addss xmm0, xmm1
minss xmm0, dword [r9 + rax*4]
movss dword [rdx + rax*4], xmm0
cmp r8, rax
jne 0x428054
jmp 0x427b10
mov r8d, 5
lea rdx, [0x0046f7f4]
mov rcx, rbx
call fcn.00428a00
mov rsi, qword [rbp + 0xa8]
mov dword [rbp + 0x54], eax
and rsi, 0xfffffffffffffff0
mov rax, rsi
call fcn.004582d0
mov r9d, dword [rbp + 0x100]
mov r8d, dword [rbp + 0x108]
mov rcx, qword [rbp + 0xd8]
sub rsp, rax
lea rax, [rsp + 0xc0]
mov rdx, rax
mov qword [rbp + 0x90], rax
call fcn.0040bc30
mov rax, rsi
call fcn.004582d0
sub rsp, rax
mov rcx, rbx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xe8], rax
call fcn.004287c0
mov r9d, eax
jmp 0x427466
mov dword [rbp + 0x104], 8
sub ecx, 8
jmp 0x4275d1
mov edx, 1
mov rcx, rbx
call fcn.004289b0
mov dword [rbp + 0xe8], eax
jmp 0x427352
pxor xmm1, xmm1
cvtsi2ss xmm1, dword [rbp + 0x50]
mulss xmm1, dword [0x0046f84c]
jmp 0x42802b
mov ebx, dword [rbp + 0xc8]
mov r8d, dword [rbp + 0x108]
mov rcx, r12
mov edx, ebx
call fcn.00425f40
mov eax, dword [rbp + 0x210]
lea rcx, [rbp + 0x130]
mov r8d, ebx
mov dword [rsp + 0x38], eax
lea rax, [r12 + 0x58]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x80]
mov qword [rsp + 0x28], rax
mov eax, dword [r12 + 0x14]
mov dword [rsp + 0x20], eax
mov rdx, qword [rbp + 0x1f8]
mov r9d, dword [rbp + 0xf8]
call fcn.00425770
mov eax, dword [rbp + 0x64]
cdq
idiv dword [r12 + 0x14]
jmp 0x426fc8
mov rdx, qword [rbp + 0xf0]
mov r8, qword [rbp + 0x40]
mov rcx, rdx
add rcx, r8
call sub.msvcrt.dll_memcpy
jmp 0x427ac8
cmp dword [rbp + 0x108], 1
mov edx, 3
mov rcx, rbx
setg sil
call fcn.004289b0
mov edx, dword [rbx + 0x18]
mov ecx, eax
mov dword [rbp + 0xd0], eax
bsr eax, dword [rbx + 0x20]
xor eax, 0x1f
lea r13d, [rax + rdx - 0x20]
add r13d, 2
test ecx, ecx
je 0x427d77
mov eax, dword [rbp + 0x50]
mov byte [rbp + 0x8b], sil
mov dword [rbp + 0x60], eax
jmp 0x427d7e
lea rbx, [rbp + 0x140]
mov r8d, dword [rbp + 0x1f0]
mov rdx, rsi
mov rcx, rbx
call fcn.00428880
jmp 0x4270c3
mov edx, 1
mov rcx, rbx
call fcn.004289b0
mov dword [rbp + 0x8c], eax
test eax, eax
jne 0x4282a9
bsr eax, dword [rbx + 0x20]
mov edx, dword [rbx + 0x18]
pxor xmm6, xmm6
mov dword [rbp + 0x98], 0
xor eax, 0x1f
lea r13d, [rax + rdx - 0x20]
jmp 0x427157
mov ecx, dword [rbp + 0x10c]
cmp dword [rbp + 0xd4], ecx
jle 0x427be4
xor r8d, r8d
movss xmm0, dword [0x0046f848]
xor edx, edx
jmp 0x427b8a
mov dword [rbp + 0x50], 1
mov dword [rbp + 0x108], 0
jmp 0x426ff3
xor r13d, r13d
jmp 0x4272fd
mov edx, 6
mov rcx, rbx
call fcn.00428ad0
mov rcx, rbx
mov esi, eax
lea edx, [rax + 4]
call fcn.00428a60
mov ecx, esi
mov edx, 0x10
shl edx, cl
mov rcx, rbx
lea eax, [rax + rdx - 1]
mov edx, 3
mov dword [rbp + 0x8c], eax
call fcn.00428a60
mov edx, dword [rbx + 0x18]
mov dword [rbp + 0x98], 0
mov esi, eax
bsr eax, dword [rbx + 0x20]
xor eax, 0x1f
lea r13d, [rax + rdx - 0x20]
lea eax, [r13 + 1]
cmp eax, dword [rbp + 0xcc]
jl 0x4283b1
add esi, 1
pxor xmm6, xmm6
cvtsi2ss xmm6, esi
mulss xmm6, dword [0x0046f844]
jmp 0x427157
mov r8d, 5
lea rdx, [0x0046f7f4]
mov rcx, rbx
call fcn.00428a00
mov rsi, qword [rbp + 0xa8]
mov dword [rbp + 0x54], eax
and rsi, 0xfffffffffffffff0
mov rax, rsi
call fcn.004582d0
mov r9d, dword [rbp + 0x100]
mov r8d, dword [rbp + 0x108]
mov rcx, qword [rbp + 0xd8]
sub rsp, rax
lea rax, [rsp + 0xc0]
mov rdx, rax
mov qword [rbp + 0x90], rax
call fcn.0040bc30
mov rax, rsi
call fcn.004582d0
sub rsp, rax
mov rcx, rbx
lea rax, [rsp + 0xc0]
mov qword [rbp + 0xe8], rax
call fcn.004287c0
mov dword [rbp + 0x9c], r14d
mov r9d, eax
jmp 0x427569
mov r8d, 2
lea rdx, [0x0046f7f1]
mov rcx, rbx
call fcn.00428a00
mov dword [rbp + 0x98], eax
bsr eax, dword [rbx + 0x20]
xor eax, 0x1f
add eax, dword [rbx + 0x18]
lea r13d, [rax - 0x20]
jmp 0x42830e