Function at 0x564e40
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0xb0]
cmp r12, qword [r14 + 0x10]
jbe 0x565446
push rbp
mov rbp, rsp
sub rsp, 0x128
mov rdx, rsi
shl rsi, 1
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x148], rcx
mov qword [rsp + 0x150], rdi
mov qword [rsp + 0x158], rdx
mov qword [rsp + 0x160], r8
mov qword [rsp + 0x50], rdx
mov rax, rsi
nop dword [rax + rax]
call sym.math_big.getNat
mov qword [rsp + 0xd8], rax
test byte [rax], al
mov rcx, qword [rax + 0x10]
mov rbx, qword [rax + 8]
mov rax, qword [rax]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xf0], rcx
call sym.math_big.nat.clear
mov rcx, qword [rsp + 0x158]
mov rdx, qword [rsp + 0x150]
test rcx, rcx
ja 0x564ef1
jmp 0x56543d
mov rax, qword [rdx]
mov qword [rsp + 0xa8], rax
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x150]
test rcx, rcx
ja 0x564f16
jmp 0x565436
mov rbx, qword [rbx]
mov qword [rsp + 0xa0], rbx
mul rbx
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x70], rax
mov rcx, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x138]
cmp rcx, 1
ja 0x564f59
jmp 0x56542c
mov qword [rbx + 8], rdx
mov rcx, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x70]
test rcx, rcx
ja 0x564f7c
jmp 0x565425
mov qword [rbx], rsi
mov qword [rsp + 0x58], 1
jmp 0x564f8a
mov rbx, qword [rsp + 0x58]
cmp qword [rsp + 0x50], rbx
jg 0x564f9b
jmp 0x5651ac
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x158]
mov rbx, qword [rsp + 0x150]
cmp rcx, rax
ja 0x564fba
jmp 0x565420
lea rbx, [rbx + rax*8]
mov rax, qword [rbx]
mov qword [rsp + 0x60], rax
mul rax
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0xd0], rax
mov rbx, qword [rsp + 0x58]
lea rax, [rbx + rbx]
lea rax, [rax + 1]
mov qword [rsp + 0x98], rax
mov rcx, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x138]
cmp rcx, rax
ja 0x565015
jmp 0x565417
lea rbx, [rbx + rax*8]
mov qword [rbx], rdx
mov rax, qword [rsp + 0x58]
mov rbx, rax
shl rbx, 1
mov qword [rsp + 0x90], rbx
mov rcx, qword [rsp + 0x140]
mov rsi, qword [rsp + 0x138]
mov rdi, qword [rsp + 0xd0]
cmp rcx, rbx
ja 0x565051
jmp 0x56540f
shl rax, 4
lea rbx, [rsi + rax]
mov qword [rbx], rdi
mov rcx, qword [rsp + 0x58]
shl rcx, 1
mov qword [rsp + 0xb8], rcx
mov rax, qword [rsp + 0x58]
mov rdx, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0xe0]
cmp rdx, rcx
jae 0x56508b
jmp 0x56540a
cmp rax, rcx
jbe 0x565095
jmp 0x565405
sub rdx, rax
sub rcx, rax
mov rsi, rdx
neg rdx
shl rax, 3
sar rdx, 0x3f
and rax, rdx
add rax, rbx
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], rcx
mov qword [rsp + 0x120], rsi
mov rcx, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x160]
mov rax, qword [rsp + 0x150]
nop dword [rax]
cmp rdx, rcx
jae 0x5650ea
jmp 0x565400
jmp 0x5650ec
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rdx
mov rbx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x118]
mov r8, qword [rsp + 0x120]
mov qword [rsp], rsi
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], r8
mov qword [rsp + 0x18], rax
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rbx
call sym.math_big.addMulVVW.abi0
xorps xmm15, xmm15
mov r14, qword [0x0081bc20]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0x58]
mov rdx, rcx
shl rcx, 1
mov qword [rsp + 0x88], rcx
mov rbx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0xe0]
cmp rbx, rcx
ja 0x565194
jmp 0x5653f4
shl rdx, 4
lea rbx, [rsi + rdx]
mov qword [rbx], rax
nop
jmp 0x5651a2
inc qword [rsp + 0x58]
jmp 0x564f8a
mov rbx, qword [rsp + 0x50]
lea rcx, [rbx + rbx]
lea rcx, [rcx - 1]
mov qword [rsp + 0xb8], rcx
mov rdx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xe0]
cmp rdx, rcx
jae 0x5651e0
jmp 0x5653ef
cmp rcx, 1
jae 0x5651eb
jmp 0x5653e5
lea rbx, [rbx + rbx]
lea rbx, [rbx - 2]
lea rdi, [rdx - 1]
mov r8, rdi
neg rdi
sar rdi, 0x3f
and edi, 8
add rsi, rdi
mov qword [rsp + 0xf8], rsi
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], r8
mov rbx, qword [rsp + 0x50]
lea rcx, [rbx + rbx]
lea rcx, [rcx - 1]
mov qword [rsp + 0xb0], rcx
mov rdx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xe0]
cmp rdx, rcx
jae 0x56524e
jmp 0x5653e0
cmp rcx, 1
jae 0x565259
jmp 0x5653d1
lea rax, [rbx + rbx]
lea rax, [rax - 2]
lea rcx, [rdx - 1]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and ecx, 8
add rcx, rsi
mov qword [rsp + 0x110], rcx
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rdx
mov rbx, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x108]
mov qword [rsp], rbx
mov qword [rsp + 8], rsi
mov qword [rsp + 0x10], rdi
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 1
call sym.math_big.shlVU.abi0
xorps xmm15, xmm15
mov r14, qword [0x0081bc20]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0x50]
lea rcx, [rcx + rcx]
lea rcx, [rcx - 1]
mov qword [rsp + 0x80], rcx
mov rdx, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xe0]
cmp rdx, rcx
ja 0x56531e
jmp 0x5653c6
lea rcx, [rbx + rcx*8]
mov qword [rcx], rax
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
mov rdx, qword [rsp + 0x148]
mov rbx, qword [rsp + 0x138]
mov rsi, qword [rsp + 0x140]
mov rdi, qword [rsp + 0x148]
mov r8, qword [rsp + 0xe0]
mov r9, qword [rsp + 0xe8]
mov r10, qword [rsp + 0xf0]
mov qword [rsp], rax
mov qword [rsp + 8], rcx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
call sym.math_big.addVV.abi0
xorps xmm15, xmm15
mov r14, qword [0x0081bc20]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0xd8]
call sym.math_big.putNat
add rsp, 0x128
pop rbp
ret
mov rax, rcx
mov rcx, rdx
call sym.runtime.panicIndex
mov eax, 1
call sym.runtime.panicSliceB
nop dword [rax + rax]
call sym.runtime.panicSliceAcap
mov eax, 1
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
mov rax, rcx
mov rcx, rbx
call sym.runtime.panicIndex
nop
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
mov rax, rbx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
nop dword [rax]
call sym.runtime.panicIndex
xor eax, eax
call sym.runtime.panicIndex
mov eax, 1
call sym.runtime.panicIndex
xor eax, eax
call sym.runtime.panicIndex
xor eax, eax
nop
call sym.runtime.panicIndex
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
jmp sym.math_big.basicSqr