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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x228
mov esi, dword [r9 + 4]
lea r12, [rsp + 0x14f]
lea eax, [rsi - 0x400]
mov rbp, rcx
mov rbx, rdx
mov rdi, r8
and r12, 0xffffffffffffffc0
mov dword [rsp + 0x48], esi
cmp eax, 0x7fc00
ja 0x63c7d0
mov eax, dword [r9 + 8]
lea edx, [rax - 8]
cmp edx, 0x18
ja 0x63c7d0
lea ecx, [rsi - 1]
mov dword [rsp + 0x84], ecx
and ecx, esi
mov dword [rsp + 0x90], ecx
jne 0x63c7d0
mov r15, qword [r9 + 0x10]
mov r13, qword [r9 + 0x18]
test r15, r15
jne 0x63c820
test r13, r13
je 0x63c820
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x16
mov rax, qword [rsp + 0x290]
mov qword [rax], 0xffffffffffffffff
mov qword [rax + 8], 0xffffffffffffffff
mov qword [rax + 0x10], 0xffffffffffffffff
mov qword [rax + 0x18], 0xffffffffffffffff
xor eax, eax
add rsp, 0x228
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, dword [rsp + 0x48]
mov qword [rsp + 0x98], rax
shl rax, 7
mov dword [rsp + 0x100], 0x18000
lea rsi, [rax + 0x40]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x50], rsi
mov r14, r8
imul r14, rax
lea rsi, [r14 + rax*2 + 0x40]
lea rax, [rsi + 0x18000]
mov qword [rsp + 0x40], rax
cmp qword [rbp + 0x18], rax
jae 0x63c9d0
mov rcx, qword [rbp]
test rcx, rcx
je 0x63c87d
call sub.msvcrt.dll_free
vxorps xmm0, xmm0, xmm0
mov qword [rbp], 0
lea rcx, [rsi + 0x1803f]
vmovups xmmword [rbp + 0x10], xmm0
call sub.msvcrt.dll_malloc
test rax, rax
je 0x63d8ac
vmovddup xmm0, qword [rsp + 0x40]
lea rsi, [rax + 0x3f]
mov qword [rbp], rax
and rsi, 0xffffffffffffffc0
mov qword [rbp + 8], rsi
vmovups xmmword [rbp + 0x10], xmm0
je 0x63c7dc
mov rax, qword [rsp + 0x88]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x20
mov rbp, qword [rsp + 0x50]
mov rcx, r12
add rax, rsi
add r14, rax
mov qword [rsp + 0x40], rax
add rbp, r14
lea rax, [rbp + 0x8000]
mov qword [rsp + 0xe0], rbp
add rbp, 0x10000
mov qword [rsp + 0xe8], rax
call fcn.00452d50
mov r8, rdi
mov rdx, rbx
mov rcx, r12
call fcn.00452f80
lea rax, [rsp + 0xc0]
mov rcx, r12
mov rdx, rax
mov qword [rsp + 0xa8], rax
call fcn.00453010
mov qword [rsp + 0xf0], rbp
mov qword [rsp + 0xf8], 0
test r15, r15
je 0x63cda0
movsxd rax, dword [rsp + 0x298]
mov rdi, qword [0x006f2640]
shl rax, 7
mov qword [rsp + 0xa0], rax
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x63c9c3
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x30], pe_nt_image_headers64
mov qword [rsp + 0x28], rsi
mov r9, r13
mov qword [rsp + 0x20], 1
mov r8, r15
mov edx, 0x20
call fcn.0063e180
mov rdi, qword [0x006f2640]
mov rax, qword [rsp + 0xa0]
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
je 0x63c9e0
xor eax, eax
jmp 0x63c805
mov rsi, qword [rbp + 8]
jmp 0x63c8c4
vmovups xmm1, xmmword [rsi]
mov eax, dword [rsp + 0x48]
mov edx, 0xaaaaaaab
mov rbx, qword [rsp + 0xe0]
mov ecx, dword [rsp + 0x100]
add eax, 2
imul rax, rdx
mov dword [rsp + 0x78], ecx
vmovups xmmword [rsp + 0xc0], xmm1
vmovups xmm2, xmmword [rsi + 0x10]
shr rax, 0x21
inc eax
and eax, 0xfffffffe
mov dword [rsp + 0x94], eax
mov eax, ecx
shr eax, 7
mov dword [rsp + 0x50], eax
vmovups xmmword [rsp + 0xd0], xmm2
mov r15d, dword [rsi]
mov dword [rbx + 0x80], r15d
mov edx, dword [rsi + 4]
mov dword [rbx + 0x84], edx
mov r10d, dword [rsi + 8]
mov dword [rsp + 0x68], edx
mov dword [rbx + 0x88], r10d
mov r8d, dword [rsi + 0xc]
mov dword [rsp + 0x70], r10d
mov dword [rbx + 0x8c], r8d
mov r13d, dword [rsi + 0x10]
shl r8, 0x20
mov dword [rbx + 0x90], r13d
mov r11d, dword [rsi + 0x14]
mov dword [rbx + 0x94], r11d
mov r9d, dword [rsi + 0x18]
shl r11, 0x20
or r15, r11
mov dword [rbx + 0x98], r9d
mov edx, dword [rsi + 0x1c]
mov dword [rsp + 0x58], r9d
mov dword [rbx + 0x9c], edx
mov ebp, dword [rsi + 0x20]
shl rdx, 0x20
mov dword [rbx + 0xa0], ebp
mov r9d, dword [rsi + 0x24]
mov dword [rbx + 0xa4], r9d
mov r12d, dword [rsi + 0x28]
shl r9, 0x20
or r9, r13
mov dword [rbx + 0xa8], r12d
mov eax, dword [rsi + 0x2c]
mov dword [rsp + 0x60], r12d
mov r11d, dword [rsp + 0x60]
mov dword [rbx + 0xac], eax
mov edi, dword [rsi + 0x30]
shl rax, 0x20
mov dword [rbx + 0xb0], edi
mov ecx, dword [rsi + 0x34]
mov dword [rbx + 0xb4], ecx
mov r12d, dword [rsi + 0x38]
shl rcx, 0x20
or rcx, rbp
mov dword [rbx + 0xb8], r12d
mov r10d, dword [rsi + 0x3c]
mov qword [rbx + 0x20], rcx
mov ecx, dword [rsp + 0x70]
or r8, r12
mov qword [rbx + 0x10], r9
mov qword [rbx], r15
lea r12, [rbx + 0x100]
mov qword [rbx + 0x18], r8
mov r8d, 1
or rdx, rcx
mov dword [rbx + 0xbc], r10d
shl r10, 0x20
mov qword [rbx + 0x28], rdx
mov rdx, qword [rsp + 0x68]
or r10, r11
mov qword [rbx + 8], r10
shl rdx, 0x20
or rdi, rdx
mov edx, dword [rsp + 0x58]
mov qword [rbx + 0x30], rdi
lea rdi, [rbx + 0x80]
or rax, rdx
mov qword [rbx + 0x38], rax
mov ecx, dword [rsi + 0x40]
mov dword [rbx + 0x80], ecx
mov eax, dword [rsi + 0x44]
mov dword [rbx + 0x84], eax
mov eax, dword [rsi + 0x48]
mov dword [rbx + 0x88], eax
mov eax, dword [rsi + 0x4c]
mov dword [rbx + 0x8c], eax
mov eax, dword [rsi + 0x50]
mov dword [rbx + 0x90], eax
mov edx, dword [rsi + 0x54]
mov dword [rbx + 0x94], edx
mov eax, dword [rsi + 0x58]
shl rdx, 0x20
or rcx, rdx
mov dword [rbx + 0x98], eax
mov eax, dword [rsi + 0x5c]
mov dword [rbx + 0x9c], eax
mov eax, dword [rsi + 0x60]
mov dword [rbx + 0xa0], eax
mov eax, dword [rsi + 0x64]
mov dword [rbx + 0xa4], eax
mov eax, dword [rsi + 0x68]
mov dword [rbx + 0xa8], eax
mov eax, dword [rsi + 0x6c]
mov edx, dword [rbx + 0xa8]
mov dword [rbx + 0xac], eax
mov eax, dword [rsi + 0x70]
mov dword [rbx + 0xb0], eax
mov eax, dword [rsi + 0x74]
mov dword [rbx + 0xb4], eax
mov eax, dword [rsi + 0x78]
mov dword [rbx + 0xb8], eax
mov eax, dword [rsi + 0x7c]
mov qword [rbx + 0x40], rcx
mov rcx, rbx
mov dword [rbx + 0xbc], eax
shl rax, 0x20
or rax, rdx
mov edx, dword [rbx + 0x90]
mov qword [rbx + 0x48], rax
mov eax, dword [rbx + 0xa4]
shl rax, 0x20
or rax, rdx
mov edx, dword [rbx + 0xb8]
mov qword [rbx + 0x50], rax
mov eax, dword [rbx + 0x8c]
shl rax, 0x20
or rax, rdx
mov qword [rbx + 0x58], rax
mov eax, dword [rbx + 0xb4]
mov edx, dword [rbx + 0xa0]
shl rax, 0x20
or rax, rdx
mov edx, dword [rbx + 0x88]
mov qword [rbx + 0x60], rax
mov eax, dword [rbx + 0x9c]
shl rax, 0x20
xor r9d, r9d
or rax, rdx
mov edx, dword [rbx + 0xb0]
mov qword [rbx + 0x68], rax
mov eax, dword [rbx + 0x84]
shl rax, 0x20
or rax, rdx
mov edx, dword [rbx + 0x98]
mov qword [rbx + 0x70], rax
mov eax, dword [rbx + 0xac]
shl rax, 0x20
or rax, rdx
mov rdx, rdi
mov qword [rbx + 0x78], rax
call fcn.0063ad50
mov rcx, rdi
xor r9d, r9d
mov r8d, 1
mov rdx, r12
call fcn.0063ad50
mov ecx, dword [rsp + 0x50]
mov eax, dword [rbx + 0x140]
cmp ecx, 2
jbe 0x63cdb0
mov r15d, dword [rsp + 0x78]
dec ecx
mov edi, 2
mov dword [rsp + 0x58], ecx
shr r15d, 8
cmp r15d, edi
ja 0x63cd8d
mov r13d, dword [rsp + 0x58]
sub r13d, edi
cmp r13d, 1
jbe 0x63cd75
lea ebp, [rdi - 1]
mov r10, r12
mov r9d, 1
nop dword [rax]
and eax, ebp
lea r11, [r10 + 0x80]
mov rcx, r10
lea edx, [r9 + rax - 1]
mov r8, r11
shl rdx, 7
add rdx, rbx
call fcn.0063c420
and eax, ebp
add r10, 0x100
mov rcx, r11
lea edx, [rax + r9]
mov r8, r10
shl rdx, 7
add rdx, rbx
call fcn.0063c420
add r9d, 2
cmp r9d, r13d
jb 0x63cd10
lea edx, [r13 - 2]
mov ecx, 0x100
shr edx, 1
inc rdx
shl rdx, 8
cmp r13d, 1
cmovbe rdx, rcx
add r12, rdx
lea edx, [rdi + rdi]
cmp dword [rsp + 0x50], edx
jbe 0x63d8a0
mov edi, edx
cmp r15d, edi
jbe 0x63ccf2
mov r13d, edi
jmp 0x63cd00
mov r15, rbx
xor r13d, r13d
jmp 0x63c956
xor eax, eax
xor r9d, r9d
mov edi, 1
mov r10d, dword [rsp + 0x50]
lea r11, [r12 + 0x80]
mov rcx, r12
mov ebp, 1
mov r8, r11
sub r10d, edi
lea rdi, [rsp + 0xe0]
lea edx, [r10 + rax - 2]
shl rdx, 7
add rdx, rbx
call fcn.0063c420
mov r8, r14
and r9d, eax
mov rcx, r11
lea edx, [r10 + r9 - 1]
shl rdx, 7
add rdx, rbx
mov ebx, 2
call fcn.0063c420
mov rdx, qword [r14 + 8]
mov rax, qword [r14]
mov qword [r14 + 0x88], rdx
mov rdx, qword [r14 + 0x10]
mov qword [r14 + 0x80], rax
mov qword [r14 + 0x90], rdx
mov rdx, qword [r14 + 0x18]
mov qword [r14 + 0x98], rdx
mov rdx, qword [r14 + 0x20]
mov qword [r14 + 0xa0], rdx
mov rdx, qword [r14 + 0x28]
mov qword [r14 + 0xa8], rdx
mov rdx, qword [r14 + 0x30]
mov qword [r14 + 0xb0], rdx
mov rdx, qword [r14 + 0x38]
mov qword [r14 + 0xb8], rdx
mov dword [rsi], eax
mov eax, dword [r14 + 0xb4]
mov dword [rsi + 4], eax
mov rax, qword [r14 + 0xa8]
mov dword [rsi + 8], eax
mov eax, dword [r14 + 0x9c]
mov dword [rsi + 0xc], eax
mov rax, qword [r14 + 0x90]
mov dword [rsi + 0x10], eax
mov eax, dword [r14 + 0x84]
mov dword [rsi + 0x14], eax
mov rax, qword [r14 + 0xb8]
mov dword [rsi + 0x18], eax
mov eax, dword [r14 + 0xac]
mov dword [rsi + 0x1c], eax
mov rax, qword [r14 + 0xa0]
mov dword [rsi + 0x20], eax
mov eax, dword [r14 + 0x94]
mov dword [rsi + 0x24], eax
mov rax, qword [r14 + 0x88]
mov dword [rsi + 0x28], eax
mov eax, dword [r14 + 0xbc]
mov dword [rsi + 0x2c], eax
mov rax, qword [r14 + 0xb0]
mov dword [rsi + 0x30], eax
mov eax, dword [r14 + 0xa4]
mov dword [rsi + 0x34], eax
mov rax, qword [r14 + 0x98]
mov dword [rsi + 0x38], eax
mov eax, dword [r14 + 0x8c]
mov dword [rsi + 0x3c], eax
mov rdx, qword [r14 + 0x48]
mov rax, qword [r14 + 0x40]
mov qword [r14 + 0x88], rdx
mov rdx, qword [r14 + 0x50]
mov qword [r14 + 0x80], rax
mov qword [r14 + 0x90], rdx
mov rdx, qword [r14 + 0x58]
mov qword [r14 + 0x98], rdx
mov rdx, qword [r14 + 0x60]
mov qword [r14 + 0xa0], rdx
mov rdx, qword [r14 + 0x68]
mov qword [r14 + 0xa8], rdx
mov rdx, qword [r14 + 0x70]
mov qword [r14 + 0xb0], rdx
mov rdx, qword [r14 + 0x78]
mov qword [r14 + 0xb8], rdx
mov dword [rsi + 0x40], eax
mov eax, dword [r14 + 0xb4]
mov dword [rsi + 0x44], eax
mov rax, qword [r14 + 0xa8]
mov r15, qword [rsp + 0x98]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x88]
mov dword [rsi + 0x48], eax
mov eax, dword [r14 + 0x9c]
add r12, r13
mov dword [rsi + 0x4c], eax
mov rax, qword [r14 + 0x90]
mov dword [rsi + 0x50], eax
mov eax, dword [r14 + 0x84]
mov dword [rsi + 0x54], eax
mov rax, qword [r14 + 0xb8]
mov dword [rsi + 0x58], eax
mov eax, dword [r14 + 0xac]
mov dword [rsi + 0x5c], eax
mov rax, qword [r14 + 0xa0]
mov dword [rsi + 0x60], eax
mov eax, dword [r14 + 0x94]
mov dword [rsi + 0x64], eax
mov rax, qword [r14 + 0x88]
mov dword [rsi + 0x68], eax
mov eax, dword [r14 + 0xbc]
mov dword [rsi + 0x6c], eax
mov rax, qword [r14 + 0xb0]
mov dword [rsi + 0x70], eax
mov eax, dword [r14 + 0xa4]
mov dword [rsi + 0x74], eax
mov rax, qword [r14 + 0x98]
mov dword [rsi + 0x78], eax
mov eax, dword [r14 + 0x8c]
mov dword [rsi + 0x7c], eax
lea rax, [r15 + r15]
mov qword [rsp + 0x70], rax
mov edx, dword [rsi]
mov dword [r12], edx
mov eax, dword [rsi + 4]
mov dword [r12 + 4], eax
mov eax, dword [rsi + 8]
mov dword [r12 + 8], eax
mov eax, dword [rsi + 0xc]
mov dword [r12 + 0xc], eax
mov eax, dword [rsi + 0x10]
mov dword [r12 + 0x10], eax
mov eax, dword [rsi + 0x14]
mov dword [r12 + 0x14], eax
mov ecx, dword [rsi + 0x18]
shl rax, 0x20
or rax, rdx
mov dword [r12 + 0x18], ecx
mov ecx, dword [rsi + 0x1c]
mov dword [r12 + 0x1c], ecx
mov ecx, dword [rsi + 0x20]
mov dword [r12 + 0x20], ecx
mov ecx, dword [rsi + 0x24]
mov dword [r12 + 0x24], ecx
mov ecx, dword [rsi + 0x28]
mov dword [r12 + 0x28], ecx
mov ecx, dword [rsi + 0x2c]
mov dword [r12 + 0x2c], ecx
mov ecx, dword [rsi + 0x30]
mov dword [r12 + 0x30], ecx
mov ecx, dword [rsi + 0x34]
mov dword [r12 + 0x34], ecx
mov ecx, dword [rsi + 0x38]
mov dword [r12 + 0x38], ecx
mov ecx, dword [rsi + 0x3c]
mov dword [r12 + 0x3c], ecx
mov qword [r13], rax
mov eax, dword [r12 + 0x3c]
mov edx, dword [r12 + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 8], rax
mov eax, dword [r12 + 0x24]
mov edx, dword [r12 + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x10], rax
mov eax, dword [r12 + 0xc]
mov edx, dword [r12 + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x18], rax
mov eax, dword [r12 + 0x34]
mov edx, dword [r12 + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x20], rax
mov eax, dword [r12 + 0x1c]
mov edx, dword [r12 + 8]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x28], rax
mov eax, dword [r12 + 4]
mov edx, dword [r12 + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x30], rax
mov eax, dword [r12 + 0x2c]
mov edx, dword [r12 + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x38], rax
mov edx, dword [rsi + 0x40]
mov dword [r12], edx
mov eax, dword [rsi + 0x44]
mov dword [r12 + 4], eax
mov eax, dword [rsi + 0x48]
mov dword [r12 + 8], eax
mov eax, dword [rsi + 0x4c]
mov dword [r12 + 0xc], eax
mov eax, dword [rsi + 0x50]
mov dword [r12 + 0x10], eax
mov eax, dword [rsi + 0x54]
mov dword [r12 + 0x14], eax
mov ecx, dword [rsi + 0x58]
shl rax, 0x20
or rax, rdx
mov dword [r12 + 0x18], ecx
mov ecx, dword [rsi + 0x5c]
mov dword [r12 + 0x1c], ecx
mov ecx, dword [rsi + 0x60]
mov dword [r12 + 0x20], ecx
mov ecx, dword [rsi + 0x64]
mov dword [r12 + 0x24], ecx
mov ecx, dword [rsi + 0x68]
mov dword [r12 + 0x28], ecx
mov ecx, dword [rsi + 0x6c]
mov dword [r12 + 0x2c], ecx
mov ecx, dword [rsi + 0x70]
mov dword [r12 + 0x30], ecx
mov ecx, dword [rsi + 0x74]
mov dword [r12 + 0x34], ecx
mov ecx, dword [rsi + 0x78]
mov dword [r12 + 0x38], ecx
mov ecx, dword [rsi + 0x7c]
mov dword [r12 + 0x3c], ecx
mov qword [r13 + 0x40], rax
mov eax, dword [r12 + 0x3c]
mov edx, dword [r12 + 0x28]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x48], rax
mov eax, dword [r12 + 0x24]
mov edx, dword [r12 + 0x10]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x50], rax
mov eax, dword [r12 + 0xc]
mov edx, dword [r12 + 0x38]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x58], rax
mov eax, dword [r12 + 0x34]
mov edx, dword [r12 + 0x20]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x60], rax
mov eax, dword [r12 + 0x1c]
mov edx, dword [r12 + 8]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x68], rax
mov eax, dword [r12 + 4]
mov edx, dword [r12 + 0x30]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x70], rax
mov eax, dword [r12 + 0x2c]
mov edx, dword [r12 + 0x18]
shl rax, 0x20
or rax, rdx
mov qword [r13 + 0x78], rax
nop word [rax + rax]
mov edx, ebx
lea ecx, [rbx - 2]
mov r9, rdi
mov r8d, 1
shl rdx, 6
shl rcx, 6
add ebx, 2
add rdx, r13
add rcx, r13
call fcn.0063ad50
lea eax, [rbp + 1]
mov rbp, rax
cmp r15, rax
ja 0x63d250
mov r13, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x40]
mov r9, rdi
mov rdx, r12
mov r8, r13
mov rbx, r13
call fcn.0063ad50
mov rbp, qword [rsp + 0x88]
mov rcx, r12
mov r9, rdi
mov r8, r13
shl rbx, 8
lea r15, [r12 + rbp]
mov rdx, r15
mov qword [rsp + 0x60], r15
call fcn.0063ad50
lea rax, [rbp - 0x40]
mov dword [rsp + 0x50], 2
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x58], rbx
mov rsi, rbp
mov qword [rsp + 0xb0], r14
mov edx, dword [rsp + 0x48]
mov eax, dword [r15 + rbp - 0x40]
mov ecx, dword [rsp + 0x50]
shr edx, 1
mov dword [rsp + 0x68], edx
cmp dword [rsp + 0x68], ecx
ja 0x63d3d6
nop dword [rax]
mov r12d, dword [rsp + 0x84]
sub r12d, ecx
cmp r12d, 1
jbe 0x63d3b9
mov ecx, dword [rsp + 0x50]
mov r14, qword [rsp + 0x60]
mov ebx, 1
mov r15, r13
lea ebp, [rcx - 1]
nop dword [rax]
and eax, ebp
lea r13, [rsi + r14]
mov rcx, r14
mov r9, r15
lea edx, [rbx + rax - 1]
mov r8, r13
mov qword [rsp + 0x20], rdi
imul rdx, rsi
add rdx, qword [rsp + 0x40]
call fcn.0063b3b0
add r14, qword [rsp + 0x58]
mov qword [rsp + 0x20], rdi
mov r9, r15
and eax, ebp
mov rcx, r13
lea edx, [rax + rbx]
add ebx, 2
imul rdx, rsi
add rdx, qword [rsp + 0x40]
mov r8, r14
call fcn.0063b3b0
cmp ebx, r12d
jb 0x63d340
lea edx, [r12 - 2]
mov ecx, 1
mov r13, r15
shr edx, 1
inc rdx
cmp r12d, 1
cmovbe rdx, rcx
imul rdx, qword [rsp + 0x58]
add qword [rsp + 0x60], rdx
mov ecx, dword [rsp + 0x50]
lea edx, [rcx + rcx]
cmp dword [rsp + 0x48], edx
jbe 0x63d3e0
mov dword [rsp + 0x50], edx
mov ecx, edx
cmp dword [rsp + 0x68], ecx
jbe 0x63d310
mov r12d, ecx
jmp 0x63d325
mov ebp, dword [rsp + 0x48]
mov r15, qword [rsp + 0x88]
lea ebx, [rcx - 1]
mov qword [rsp + 0x20], rdi
and eax, ebx
mov r13, qword [rsp + 0x40]
mov r9, qword [rsp + 0x98]
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
sub ebp, ecx
mov rcx, qword [rsp + 0x60]
lea edx, [rax + rbp - 2]
imul rdx, r15
mov r12, rcx
add r12, r15
add rdx, r13
mov r8, r12
call fcn.0063b3b0
mov r9, qword [rsp + 0x98]
mov r8, r14
mov rcx, r12
and ebx, eax
mov qword [rsp + 0x20], rdi
lea edx, [rbp + rbx - 1]
lea rbx, [r14 + r15]
imul rdx, r15
add rdx, r13
call fcn.0063b3b0
mov r8, qword [rsp + 0x70]
xor ecx, ecx
xor eax, eax
nop word cs:[rax + rax]
shl rax, 6
lea rdx, [r14 + rax]
add rax, rsi
mov r9d, dword [rdx]
mov dword [rbx], r9d
mov r9d, dword [rdx + 4]
mov dword [rbx + 4], r9d
mov r9d, dword [rdx + 8]
mov dword [rbx + 8], r9d
mov r9d, dword [rdx + 0xc]
mov dword [rbx + 0xc], r9d
mov r9d, dword [rdx + 0x10]
mov dword [rbx + 0x10], r9d
mov r9d, dword [rdx + 0x14]
mov dword [rbx + 0x14], r9d
mov r9d, dword [rdx + 0x18]
mov dword [rbx + 0x18], r9d
mov r9d, dword [rdx + 0x1c]
mov dword [rbx + 0x1c], r9d
mov r9d, dword [rdx + 0x20]
mov dword [rbx + 0x20], r9d
mov r9d, dword [rdx + 0x24]
mov dword [rbx + 0x24], r9d
mov r9d, dword [rdx + 0x28]
mov dword [rbx + 0x28], r9d
mov r9d, dword [rdx + 0x2c]
mov dword [rbx + 0x2c], r9d
mov r9d, dword [rdx + 0x30]
mov dword [rbx + 0x30], r9d
mov r9d, dword [rdx + 0x34]
mov dword [rbx + 0x34], r9d
mov r9d, dword [rdx + 0x38]
mov dword [rbx + 0x38], r9d
mov edx, dword [rdx + 0x3c]
mov dword [rbx + 0x3c], edx
mov rdx, qword [rbx]
mov dword [rax], edx
mov edx, dword [rbx + 0x34]
mov dword [rax + 4], edx
mov rdx, qword [rbx + 0x28]
mov dword [rax + 8], edx
mov edx, dword [rbx + 0x1c]
mov dword [rax + 0xc], edx
mov rdx, qword [rbx + 0x10]
mov dword [rax + 0x10], edx
mov edx, 0x20
shrx rdx, qword [rbx], rdx
mov dword [rax + 0x14], edx
mov rdx, qword [rbx + 0x38]
mov dword [rax + 0x18], edx
mov edx, dword [rbx + 0x2c]
mov dword [rax + 0x1c], edx
mov rdx, qword [rbx + 0x20]
mov dword [rax + 0x20], edx
mov edx, dword [rbx + 0x14]
mov dword [rax + 0x24], edx
mov rdx, qword [rbx + 8]
mov dword [rax + 0x28], edx
mov edx, dword [rbx + 0x3c]
mov dword [rax + 0x2c], edx
mov rdx, qword [rbx + 0x30]
mov dword [rax + 0x30], edx
mov edx, dword [rbx + 0x24]
mov dword [rax + 0x34], edx
mov rdx, qword [rbx + 0x18]
mov dword [rax + 0x38], edx
mov edx, dword [rbx + 0xc]
mov dword [rax + 0x3c], edx
lea eax, [rcx + 1]
mov rcx, rax
cmp r8, rax
ja 0x63d470
mov r8d, dword [rsp + 0x90]
mov r9, qword [rsp + 0x70]
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
mov eax, r8d
shl rcx, 6
shl eax, 6
mov rdx, rcx
add rax, rsi
add rdx, r14
mov r10d, dword [rax]
mov dword [rbx], r10d
mov ecx, dword [rax + 4]
mov dword [rbx + 4], ecx
mov ecx, dword [rax + 8]
mov dword [rbx + 8], ecx
mov ecx, dword [rax + 0xc]
mov dword [rbx + 0xc], ecx
mov ecx, dword [rax + 0x10]
mov dword [rbx + 0x10], ecx
mov ecx, dword [rax + 0x14]
mov dword [rbx + 0x14], ecx
mov r11d, dword [rax + 0x18]
shl rcx, 0x20
or rcx, r10
mov dword [rbx + 0x18], r11d
mov r11d, dword [rax + 0x1c]
mov dword [rbx + 0x1c], r11d
mov r11d, dword [rax + 0x20]
mov dword [rbx + 0x20], r11d
mov r11d, dword [rax + 0x24]
mov dword [rbx + 0x24], r11d
mov r11d, dword [rax + 0x28]
mov dword [rbx + 0x28], r11d
mov r11d, dword [rax + 0x2c]
mov dword [rbx + 0x2c], r11d
mov r11d, dword [rax + 0x30]
mov dword [rbx + 0x30], r11d
mov r11d, dword [rax + 0x34]
mov dword [rbx + 0x34], r11d
mov r11d, dword [rax + 0x38]
mov dword [rbx + 0x38], r11d
mov eax, dword [rax + 0x3c]
mov dword [rbx + 0x3c], eax
mov qword [rdx], rcx
mov eax, dword [rbx + 0x3c]
mov ecx, dword [rbx + 0x28]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 8], rax
mov eax, dword [rbx + 0x24]
mov ecx, dword [rbx + 0x10]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x10], rax
mov eax, dword [rbx + 0xc]
mov ecx, dword [rbx + 0x38]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x18], rax
mov eax, dword [rbx + 0x34]
mov ecx, dword [rbx + 0x20]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x20], rax
mov eax, dword [rbx + 0x1c]
mov ecx, dword [rbx + 8]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x28], rax
mov eax, dword [rbx + 4]
mov ecx, dword [rbx + 0x30]
shl rax, 0x20
or rax, rcx
mov qword [rdx + 0x30], rax
mov eax, dword [rbx + 0x2c]
mov ecx, dword [rbx + 0x18]
shl rax, 0x20
or rax, rcx
lea ecx, [r8 + 1]
mov qword [rdx + 0x38], rax
mov r8, rcx
cmp rcx, r9
jb 0x63d590
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x48], rbx
mov ebp, dword [rsp + 0x84]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x98]
mov qword [rsp + 0x40], rsi
mov r15, qword [rsp + 0x88]
mov eax, dword [r14 + rcx]
mov esi, dword [rsp + 0x94]
mov rbx, qword [rsp + 0x70]
and eax, ebp
nop word cs:[rax + rax]
nop
mov edx, eax
mov r9, rdi
mov r8, r12
mov rcx, r14
imul rdx, rbx
shl rdx, 6
add rdx, r13
call fcn.0063bd60
mov r9, rdi
mov r8, r12
mov rcx, r14
mov edx, eax
and edx, ebp
imul rdx, r15
add rdx, r13
call fcn.0063bd60
and eax, ebp
sub esi, 2
jne 0x63d6f0
mov ecx, esi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
xor eax, eax
mov r8, qword [rsp + 0x70]
nop
shl rax, 6
mov edi, 0x20
lea rdx, [r14 + rax]
add rax, rsi
mov r9d, dword [rdx]
mov dword [rbx], r9d
mov r9d, dword [rdx + 4]
mov dword [rbx + 4], r9d
mov r9d, dword [rdx + 8]
mov dword [rbx + 8], r9d
mov r9d, dword [rdx + 0xc]
mov dword [rbx + 0xc], r9d
mov r9d, dword [rdx + 0x10]
mov dword [rbx + 0x10], r9d
mov r9d, dword [rdx + 0x14]
mov dword [rbx + 0x14], r9d
mov r9d, dword [rdx + 0x18]
mov dword [rbx + 0x18], r9d
mov r9d, dword [rdx + 0x1c]
mov dword [rbx + 0x1c], r9d
mov r9d, dword [rdx + 0x20]
mov dword [rbx + 0x20], r9d
mov r9d, dword [rdx + 0x24]
mov dword [rbx + 0x24], r9d
mov r9d, dword [rdx + 0x28]
mov dword [rbx + 0x28], r9d
mov r9d, dword [rdx + 0x2c]
mov dword [rbx + 0x2c], r9d
mov r9d, dword [rdx + 0x30]
mov dword [rbx + 0x30], r9d
mov r9d, dword [rdx + 0x34]
mov dword [rbx + 0x34], r9d
mov r9d, dword [rdx + 0x38]
mov dword [rbx + 0x38], r9d
mov edx, dword [rdx + 0x3c]
mov dword [rbx + 0x3c], edx
mov rdx, qword [rbx]
mov dword [rax], edx
mov edx, dword [rbx + 0x34]
mov dword [rax + 4], edx
mov rdx, qword [rbx + 0x28]
mov dword [rax + 8], edx
mov edx, dword [rbx + 0x1c]
mov dword [rax + 0xc], edx
mov rdx, qword [rbx + 0x10]
mov dword [rax + 0x10], edx
shrx rdx, qword [rbx], rdi
mov dword [rax + 0x14], edx
mov rdx, qword [rbx + 0x38]
mov dword [rax + 0x18], edx
mov edx, dword [rbx + 0x2c]
mov dword [rax + 0x1c], edx
mov rdx, qword [rbx + 0x20]
mov dword [rax + 0x20], edx
mov edx, dword [rbx + 0x14]
mov dword [rax + 0x24], edx
mov rdx, qword [rbx + 8]
mov dword [rax + 0x28], edx
mov edx, dword [rbx + 0x3c]
mov dword [rax + 0x2c], edx
mov rdx, qword [rbx + 0x30]
mov dword [rax + 0x30], edx
mov edx, dword [rbx + 0x24]
mov dword [rax + 0x34], edx
mov rdx, qword [rbx + 0x18]
mov dword [rax + 0x38], edx
mov edx, dword [rbx + 0xc]
mov dword [rax + 0x3c], edx
lea eax, [rcx + 1]
mov rcx, rax
cmp rax, r8
jb 0x63d740
mov rdi, qword [0x006f2640]
mov rax, qword [rsp + 0xa0]
add rax, qword [rdi]
movzx eax, byte [rax]
test al, al
jne 0x63c9c3
mov rdx, qword [rsp + 0x78]
mov r9, qword [rsp + 0xa8]
mov qword [rsp + 0x20], 0x20
mov r8d, 0x40
mov rcx, qword [rsp + 0x290]
add rdx, rsi
call fcn.0063e100
mov eax, 1
jmp 0x63c805
lea r9d, [rdi - 1]
and eax, r9d
jmp 0x63cdba
mov qword [rbp + 8], 0
jmp 0x63c7dc